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

发布时间:2022-04-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了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');
        }

我正在从一些阿拉伯网站上正确地获取所有数据
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&amp;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;
    }
}

脚本宝典总结

以上是脚本宝典为你收集整理的php – 通过curl方法获取url数据,在符号中产生意外结果全部内容,希望文章能够帮你解决php – 通过curl方法获取url数据,在符号中产生意外结果所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。