加入收藏 | 设为首页 | 会员中心 | 我要投稿 安卓应用网 (https://www.0791zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > PHP > 正文

php – 通过curl方法获取url数据,在符号中产生意外结果

发布时间:2020-05-25 09:40:16 所属栏目:PHP 来源:互联网
导读:我有些时候通过curl方法获取url数据的问题特别是网站数据是阿拉伯语等其他语言 我的卷曲功能是 function file_get_contents_curl($url){ $ch = curl_init(); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1)

我有些时候通过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;
    }
}

(编辑:安卓应用网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读