php – 通过curl方法获取url数据,在符号中产生意外结果
|
我有些时候通过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');
}
我正在从一些阿拉伯网站上正确地获取所有数据 获取阿拉伯语可能非常棘手,但它们是您需要确保的一些基本步骤 >您的文档必须输出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;
}
} (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
