PDA

View Full Version : کمک فوری: مشکل با آدرس فارسی صفحات در خواندن اطلاعات صفحه



hamedg1366
جمعه 15 مرداد 1395, 23:51 عصر
با عرض سلام وادب خدمت همه عزیزان

من با استفاده از کد زیر اطلاعات ی یک صفحه ی وب رو استخراج می کنم و مشکلی با آدرس های انگلیسی ندارم:



$ch = curl_init();
curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
curl_setopt($ch,CURLOPT_URL,$url);
$ret = curl_exec($ch);
curl_close($ch);
$site=$ret;


//$ret=""
$htmlDoc = new DomDocument('1.0', 'UTF-8');
@$htmlDoc->loadHTML(mb_convert_encoding($site, 'HTML-ENTITIES', 'UTF-8'));
$xpath = new DOMXPath( $htmlDoc );



اگه لینک صفحه به صورت زیر باشه مشکلی نیس :

http://www.mashreghnews.ir/fa/news/613248/%D8%B3%D8%A7%DB%8C%D9%87-%D8%AC%D9%86%DA%AF-%D9%87%DB%8C%DA%86%E2%80%8C%DA%AF%D8%A7%D9%87-%D8%A8%D8%B1-%D8%B3%D8%B1-%D9%85%D9%84%D8%AA-%D8%A7%DB%8C%D8%B1%D8%A7%D9%86-%D9%86%D8%A8%D9%88%D8%AF%D9%87-%D8%A7%D8%B3%D8%AA%D8%AF%D8%B3%D8%AA%D8%A7%D9%88%D 8%B1%D8%AF%D9%87%D8%A7%DB%8C-%D8%A8%D8%B1%D8%AC%D8%A7%D9%85-%DA%A9%D8%AC%D8%A7%D8%B3%D8%AA


مشکل اونجایی ایجاد میشه که لینک بصورت زیر در میاد :

http://www.mashreghnews.ir/fa/news/613248/سایه-جنگ-هیچ‌گاه-بر-سر-ملت-ایران-نبوده-استدستاوردهای-برجام-کجاست

وقتی لینک بصورت بالا در میاد $xpath هیچی نداره ،


این لینک رو هم (http://stackoverflow.com/questions/21374832/why-does-it-not-return-utf-8-in-php) دیدم اما جواب نداد بهم

hamedg1366
شنبه 16 مرداد 1395, 17:42 عصر
بنظرم میاد کل تالار PHP باهام قهرن !!


جایی دیدم که میفگتن اگه قسمت فارسی لینک رو حذف کنیم مشکل برطرف میشه ، بنده لینک رو به حالت

http://www.mashreghnews.ir/fa/news/613248/

نیز درآوردم بازم هیچی ندارم !!


مشکل از کجا میتونه باشه بنظرتون ، من فقط صفحه رو وقتی میتونم واکشی کنم که لینکش بصورتی باشه که حروف فارسی بصورت زیر باشه %D8%B3% (http://www.mashreghnews.ir/fa/news/613248/%D8%B3%D8%A7%DB%8C%D9%87-%D8%AC%D9%86%DA%AF-%D9%87%DB%8C%DA%86%E2%80%8C%DA%AF%D8%A7%D9%87-%D8%A8%D8%B1-%D8%B3%D8%B1-%D9%85%D9%84%D8%AA-%D8%A7%DB%8C%D8%B1%D8%A7%D9%86-%D9%86%D8%A8%D9%88%D8%AF%D9%87-%D8%A7%D8%B3%D8%AA%D8%AF%D8%B3%D8%AA%D8%A7%D9%88%D 8%B1%D8%AF%D9%87%D8%A7%DB%8C-%D8%A8%D8%B1%D8%AC%D8%A7%D9%85-%DA%A9%D8%AC%D8%A7%D8%B3%D8%AA).... در بیادش

mehdi4467
شنبه 16 مرداد 1395, 18:46 عصر
سلام
به نظر میرسه از تنظیمات سایت مقصد باشه
من با کد خودم روی یک سایت دیگه با URL فارسی تست کردم مشکلی نداشت ولی روی سایتی که دادید تست زدم مشکل داشت.

mehdi4467
شنبه 16 مرداد 1395, 18:53 عصر
فایل test.php


<!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" xml:lang="fa-ir" lang="fa-ir">
<head>
<meta name="Template" content="" />
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
<meta name="robots" content="index, follow" />
</head>
<body>
<?php
include "upfunc.php";



$url="http://barnamenevis.org/showthread.php?528155-برنامه-نویسی-موتور-جستجو";

echo $str=curl_file_get_contents($url);
echo $len = strlen($str);


?>
</body>
</html>


فایل upfunc.php




function curl_file_get_contents($url) {
$ch = curl_init();
curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
curl_setopt($ch,CURLOPT_URL,$url);
$ret = curl_exec($ch);
curl_close($ch);
return($ret);
}
?>