مشکل در نوشته فارسی در زمان استفاده از CURL و یا file_get_contents
سلام و خسته نباشید خدمت تمامی دوستان عزیز
توسط دستورات CURL و یا file_get_contents محتویات یک پیج رو لود میکنم ولی نوشته های فارسی خراب نشون میده، البته لازم به توضیح برخی نوشته های فارسی رو درست نشون میده و برخی هاشون رو بصورت کاراکترهای نامعلوم
http://s9.picofile.com/file/8293158642/dliak.png
انکدینگ صفحه هم UTF-8 است.....
ممنون میشم راهنمائیم کنید :53:
با تشکر
پاسخ : مشکل در نوشته فارسی در زمان استفاده از CURL و یا file_get_contents
سلام
به فایل htaccess. این کد رو اضافه کنید:
کد:
AddDefaultCharset utf-8
با php هم قبل از echo کردن هرگونه خروجی این دستور رو بذارید بد نیست:
کد PHP:
header('Content-type: text/html; charset=UTF-8');
دقت کنید اگه دستور بالا وقتی اجرا بشه که از قبل چیزی روی صفحه echo یا print شده باشه با اخطار headers already sent مواجه میشید.
اگر بازم درست نشد ممکنه مشکل از رشته خروجی curl باشه که می تونید به پارامتر های curl یه CURLOPT_ENCODING با مقدار خالی هم اضافه کنید تا اگه Encoding خاصی دریافت کرد قبول نکنه:
کد PHP:
curl_setopt($ch, CURLOPT_ENCODING ,"");
پاسخ : مشکل در نوشته فارسی در زمان استفاده از CURL و یا file_get_contents
نقل قول:
نوشته اصلی توسط
AtrafNet
سلام
به فایل htaccess. این کد رو اضافه کنید:
کد:
AddDefaultCharset utf-8
با php هم قبل از echo کردن هرگونه خروجی این دستور رو بذارید بد نیست:
کد PHP:
header('Content-type: text/html; charset=UTF-8');
دقت کنید اگه دستور بالا وقتی اجرا بشه که از قبل چیزی روی صفحه echo یا print شده باشه با اخطار headers already sent مواجه میشید.
اگر بازم درست نشد ممکنه مشکل از رشته خروجی curl باشه که می تونید به پارامتر های curl یه CURLOPT_ENCODING با مقدار خالی هم اضافه کنید تا اگه Encoding خاصی دریافت کرد قبول نکنه:
کد PHP:
curl_setopt($ch, CURLOPT_ENCODING ,"");
ممنون
نه متاسفانه درست نشد، هر سه اینا رو هم اضافه کردم، البته توجه کنید مثلا یه صفحه رو دریافت میکنم اگه 10 تا نوشته فارسی باشه 5 تا اینطوری قاطی پاتی میاره، 5 تای بقیه رو سالم میاره
میخواهید رمز هاست بدم بررسی کنید؟
پاسخ : مشکل در نوشته فارسی در زمان استفاده از CURL و یا file_get_contents
نقل قول:
نوشته اصلی توسط
iroo
ممنون
نه متاسفانه درست نشد، هر سه اینا رو هم اضافه کردم، البته توجه کنید مثلا یه صفحه رو دریافت میکنم اگه 10 تا نوشته فارسی باشه 5 تا اینطوری قاطی پاتی میاره، 5 تای بقیه رو سالم میاره
میخواهید رمز هاست بدم بررسی کنید؟
نه نیاز نیست کل دانسته های من تا همین حد بودم که گفتم.
اما پیشنهاد میکنم اولاً در مرورگر های دیگه هم تست کنید دوماً یه افزونه Live HTTP Headers در فایرفاکس یا کروم نصب کنید و بررسی کنید ببینید header های صفحه شما رو چی میزنه و الخصوص گزینه Content-Type چیه.
اگه همه چی اوکی بود و اینطوریه شاید مشکل از صفحه مقصد هستش که انکدینگ هاش قاطی داره که می تونید با تعویض لینکی که به curl دادید با یه لینک فارسی دیگه ببینید درسته یا نه.
پاسخ : مشکل در نوشته فارسی در زمان استفاده از CURL و یا file_get_contents
عرض سلام و احترام
کاری که فرمودند را انجام بدید (بررسی header ها) اگر به نتیجه نرسیدید فقط یکبار جهت تست با استفاده از notepad ++ ، انکدینگ را بر روی UTF8-BOM و UTF8 قرار بدید.
و سوال اینکه مقصدی که اطلاعات را از آن دریافت می کنید ، طبق گفته ی شما بعضی از متون را درست نشان می دهد و برخی دیگر را خیر ! اگر اطلاعات از دیتابیس خوانده می شود،نوع Collation دیتابیس هم بررسی کنید.
پاسخ : مشکل در نوشته فارسی در زمان استفاده از CURL و یا file_get_contents
این آدرس رو توسط curl دریافت کنید، می بینید که محتوایات اون مشکل داره...
این آدرس یک نمونه تستی است و اصل قضیه این نیست
میشه تست کنید؟
پاسخ : مشکل در نوشته فارسی در زمان استفاده از CURL و یا file_get_contents
نقل قول:
نوشته اصلی توسط
iroo
من کد ساده زیر رو با آدرسی که دادید در localhost و مرورگر فایرفاکس تست کردم مشکلی نبود:
کد:
<?php
$url = 'http://www.bing.com/search?q=%D8%B1%D8%AF%DB%8C%D8%A7%D8%A8+%D8%AE%D9%88%D8%AF%D8%B1%D9%88&qs=n&form=QBLH&sp=-1&pq=%D8%B1%D8%AF%DB%8C%D8%A7%D8%A8+%D8%AE&sc=0-7&sk=&cvid=39FF7BBFBFD141A0BDCC155A8F6F6FD5';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE);
$response = curl_exec($ch);
curl_close($ch);
header('Content-Type: text/html; charset=UTF-8');
echo $response;
شاید مشکل از تنظیمات هاست باشه یه جای دیگه هم تست کنید خبر بدید.
پاسخ : مشکل در نوشته فارسی در زمان استفاده از CURL و یا file_get_contents
نقل قول:
نوشته اصلی توسط
AtrafNet
من کد ساده زیر رو با آدرسی که دادید در localhost و مرورگر فایرفاکس تست کردم مشکلی نبود:
کد:
<?php
$url = 'http://www.bing.com/search?q=%D8%B1%D8%AF%DB%8C%D8%A7%D8%A8+%D8%AE%D9%88%D8%AF%D8%B1%D9%88&qs=n&form=QBLH&sp=-1&pq=%D8%B1%D8%AF%DB%8C%D8%A7%D8%A8+%D8%AE&sc=0-7&sk=&cvid=39FF7BBFBFD141A0BDCC155A8F6F6FD5';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE);
$response = curl_exec($ch);
curl_close($ch);
header('Content-Type: text/html; charset=UTF-8');
echo $response;
شاید مشکل از تنظیمات هاست باشه یه جای دیگه هم تست کنید خبر بدید.
ممنون
این کار میکنه بله، چون دقیقا پارامتر ارسالی دقیقا فارسی نیست و کاراکترهای معاول ان است، شما به جای اون کاراکترها از فارسی استفاد کنید اون موقع کار نمی کنه
پاسخ : مشکل در نوشته فارسی در زمان استفاده از CURL و یا file_get_contents
نقل قول:
نوشته اصلی توسط
iroo
ممنون
این کار میکنه بله، چون دقیقا پارامتر ارسالی دقیقا فارسی نیست و کاراکترهای معاول ان است، شما به جای اون کاراکترها از فارسی استفاد کنید اون موقع کار نمی کنه
با سلام
شما اگر میخواید از کاراکتر های فارسی استفاده کنید میتونید از کد دوستمون استفاده کنید
منتها قسمتی از متغییر url رو از تابع urlencode رد کنید تا مقادیر قابل جستوجو url شوند
نمون کد دوستمون با ویرایشاتی که گفتم :
کد PHP:
<?php
header('Content-Type: text/html; charset=UTF-8');
$url = 'http://www.bing.com/search?q='.urlencode('گروه طراحی چت روم تک استار');
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
?>
تست کنید نتیجه رو اعلا کنید
پاسخ : مشکل در نوشته فارسی در زمان استفاده از CURL و یا file_get_contents
phpcoding عزیز خیلی ممنونم، درست بود و کار کرد، ممنونم از شما