PDA

View Full Version : سوال: مشکل با تصاویری که اسم فارسی دارند ؟



Blue Rose
پنج شنبه 08 مهر 1389, 14:11 عصر
سلام

چطوری میتونم مشکل php با تصاویری که اسم فارسی دارند رو حل کنم ؟
(به عنوان مثال تو این سورس دیتابیس دارای 2 رکورد با نامهای (Name) علی و Ali هست که عکس Ali.jpg به درستی نمایش داده میشه اما عکس علی.jpg نه!...)



<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>
<body>
<?php
mysql_connect("localhost","root","") or die(mysql_error());
mysql_select_db("tblNames") or die(mysql_error());
mysql_query ("SET NAMES 'utf8'");
$result = mysql_query ("Select fName From tNames");
while ( $rs = mysql_fetch_array($result))
{
print ('<img src="'.$rs['fName'].'.jpg" /><BR><BR>');
print ($rs['fName'].'<BR><BR>');
}
?>
</body>

sama01
پنج شنبه 08 مهر 1389, 16:13 عصر
1.
ببین با urlencode درست می‌شه یا نه.
یعنی این طوری بنویس:

print ('<img src="'.urlencode($rs['fName']).'.jpg" /><BR><BR>');2.
لطف کنید کدهای خود را بین تگ‌های php قرار دهید تا خوانا شوند و چشم و چال ما در نیاد.
زمان ارسال یا ویرایش مطلب، کدها را انتخاب و از دکمه‌ی http://www.barnamenevis.org/forum/images/editor/php.gif استفاده کنید.

Blue Rose
پنج شنبه 08 مهر 1389, 16:57 عصر
سلام
خیلی ممنون بخاطر لطفتون
اما ! .... هنوز این مشکل پابرجاست

sama01
پنج شنبه 08 مهر 1389, 21:24 عصر
آیا فایلی که اسم آن فارسی است، در سرور هم با نام فارسی ذخیره شده است؟

Blue Rose
پنج شنبه 08 مهر 1389, 21:49 عصر
بله
این فایل با نام فارسی ذخیره شده

البته فعلا دارم با EasyPHP روی سیستم خودم اجراش می کنم

امیـرحسین
جمعه 09 مهر 1389, 02:48 صبح
شما چه خروجی ای میگیری؟ یعنی دقیقا چی Print میشه که کار نمی کنه؟

SAMAN_PHP
جمعه 09 مهر 1389, 03:17 صبح
این مشکل ربطی به php نداره, شما صفحه کدتون روبه utf-8 انکد کنید

Blue Rose
جمعه 09 مهر 1389, 07:47 صبح
شما چه خروجی ای میگیری؟ یعنی دقیقا چی Print میشه که کار نمی کنه؟

عکسی که مربوط به رکورد با نام انگلیسیه نشون داده میشه (Ali.jpg) اما عکس مربوط به رکورد نام فارسی (علی.jpg) نشون داده نمیشه

در ضمن خود رکورد نام (یعنی علی) بدرستی روی صفحه چاپ میشه و مشکل فقط نمایش تصویره...



این مشکل ربطی به php نداره, شما صفحه کدتون روبه utf-8 انکد کنید

ممکنه بگید چطوری باید اینکار رو میکردم که نکردم ؟...

Blue Rose
جمعه 09 مهر 1389, 11:29 صبح
سلام
با نصب نسخه جدید EasyPHP مشکل رفع شد.
از لطف همه دوستان ممنون

امیـرحسین
جمعه 09 مهر 1389, 11:32 صبح
یعنی این خروجی رو میگیری ولی کار نمی کنه؟
<img src="علی.jpg" />
اگر گوگل کروم داری، سورس صفحه رو باز کن و روی src این تگ، توی کدها کلیک کن. با اینکار کروم آدرس src رو توی یک تب جدید باز می کنه و چون تصویر لود نمیشه خطای 404 میگیری ولی میفهمی URL چه فرقی با URL واقعی عکس آپلود شده داره.

SAMAN_PHP
جمعه 09 مهر 1389, 17:34 عصر
چرا این همه پیچیده ش میکنید. من خودم با یه صفحه html ساده امتحان کردم یه بار بدون utf-8 با اینکه توی سورس صفحه نام علی رو درست نمایش میده ولی عکس رو نه, بار دیگه صفحه رو utf-8 کردم که عکسو نمایش داد

ممکنه بگید چطوری باید اینکار رو میکردم که نکردم ؟...
توی Notepad++ قبل از اینکه کلمه فارسی رو بنویسی ازقسمت Encoding گزینه ی Encode in utf-8 رو انتخاب کن