我有些时候通过curl方法获取url数据的问题特别是网站数据是阿拉伯语等其他语言
我的卷曲功能是
我的卷曲功能是
function file_get_contents_curl($url) { $ch = curl_init(); curl_setopt($ch,CURLOPT_HEADER,0); curl_setopt($ch,CURLOPT_RETURNTRANSFER,1); curl_setopt($ch,CURLOPT_URL,$url); curl_setopt($ch,CURLOPT_FOLLOWLOCATION,CURLOPT_SSL_VERIFYPEER,false); $data = curl_exec($ch); $info = curl_getinfo($ch,CURLINFO_CONTENT_TYPE); //checking mime types if(strstr($info,'text/html')) { curl_close($ch); return $data; } else { return false; } }
以及我如何获取数据
$html = file_get_contents_curl($checkurl); $grid =''; if($html) { $doc = new DOMDocument(); @$doc->loadHTML($html); $nodes = $doc->getElementsByTagName('title'); @$title = $nodes->item(0)->nodeValue; @$Metas = $doc->getElementsByTagName('Meta'); for ($i = 0; $i < $Metas->length; $i++) { $Meta = $Metas->item($i); if($Meta->getAttribute('name') == 'description') $description = $Meta->getAttribute('content'); }
我正在从一些阿拉伯网站上正确地获取所有数据
http://www.emaratalyoum.com/multimedia/videos/2012-04-08-1.474873
当我给你这个youtube url
http://www.youtube.com/watch?v=Eyxljw31TtU&feature=g-logo&context=G2c4f841FOAAAAAAAFAA
它显示符号..
我必须做什么设置来显示完全相同的标题描述.
介绍
获取阿拉伯语可能非常棘手,但它们是您需要确保的一些基本步骤
>您的文档必须输出UTF-8
>您的DOMDocument必须以UTF-8格式读取
问题
获取Youtube信息时,它已经以“UTF-8”格式提供信息,并且检索过程添加了额外的UTF-8编码….不确定为什么会发生这种情况,但是简单的utf8_decode会解决问题
例
header('Content-Type: text/html; charset=UTF-8'); echo displayMeta("http://www.emaratalyoum.com/multimedia/videos/2012-04-08-1.474873"); echo displayMeta("http://www.youtube.com/watch?v=Eyxljw31TtU&feature=g-logo&context=G2c4f841FOAAAAAAAFAA");
产量
emaratalyoum.com
التقطت عدسات الكاميرا حارس مرمى ريال مدريد إيكر كاسياس في موقف محرج قبل لحظات من بداية مباراة النادي الملكي مع أبويل القبرصي في ذهاب دور الثمانية لدوري أبطال
youtube.com
أوروبا.ففي النفق المؤدي إلى الملعب، قام كاسياس بوضع إصبعه في أنفه، وبعدها قام بمسح يده في وجه أحدبنات سعوديات: أريد "شايب يدللني ولا شاب يعللني"
使用的功能
displayMeta
function displayMeta($checkurl) { $html = file_get_contents_curl($checkurl); $grid = ''; if ($html) { $doc = new DOMDocument("1.0","UTF-8"); @$doc->loadHTML($html); $nodes = $doc->getElementsByTagName('title'); $title = $nodes->item(0)->nodeValue; $Metas = $doc->getElementsByTagName('Meta'); for($i = 0; $i < $Metas->length; $i ++) { $Meta = $Metas->item($i); if ($Meta->getAttribute('name') == 'description') { $description = $Meta->getAttribute('content'); if (stripos(parse_url($checkurl,PHP_URL_HOST),"youtube") !== false) return utf8_decode($description); else { return $description; } } } } }
* file_get_contents_curl *
function file_get_contents_curl($url) { $ch = curl_init(); curl_setopt($ch,CURLINFO_CONTENT_TYPE); // checking mime types if (strstr($info,'text/html')) { curl_close($ch); return $data; } else { return false; } }