【问题标题】:Why SimpleXML_load_file Returning Blank Output?为什么 SimpleXML_load_file 返回空白输出?
【发布时间】:2014-03-29 06:59:30
【问题描述】:

不要浪费一秒钟,看看这段代码:

$gp=$_GET["gp"];

function googleplus($gp) {
$furl = "http://query.yahooapis.com/v1/public/yql?q=SELECT * from html where url='https://plus.google.com/%252B".$gp."' AND xpath=\"//div[@class='Nn']//div[@class='rw Uc']//div[@class='Zi']//div[@class='V9b nhe']//div[@class='tQE8Kd BnqoOb']//div[@class='Qhb eZa']//div[@class='vkb']//p\"&format=xml";
$api = simplexml_load_file($furl);
$followers = $api->results->p;
return $followers;
}

好的。当我这样做时

<?php echo googleplus($gp); ?> 

在 URL 中带有参数 gp=mehulmohan,它应该返回如下内容:

539 让他转圈

检查与 mehulmohan 关联的 URL

http://query.yahooapis.com/v1/public/yql?q=SELECT%20*%20from%20html%20where%20url=%27https://plus.google.com/%252Bmehulmohan%27AND%20xpath=%22//div[@class=%27Nn%27]//div[@class=%27rw%20Uc%27]//div[@class=%27Zi%27]//div[@class=%27V9b%20nhe%27]//div[@class=%27tQE8Kd%20BnqoOb%27]//div[@class=%27Qhb%20eZa%27]//div[@class=%27vkb%27]//p%22&format=xml

但实际上,它返回空白。为什么?

请帮忙。所有其他社交媒体(如 pinterest 和 twitter)都返回正确的结果,但 Google+ 返回空白。

注意点:我在 URL 中解析了 2 次“+”符号,就像 1 次一样,它不接受 XML,而是第二次。

"+" = %2B = %252B

【问题讨论】:

    标签: php xml api google-plus


    【解决方案1】:

    使用urlencode() 正确编码URL 中的字符。请记住始终将 SimpleXML 对象转换为字符串。更新后的函数如下所示:

    function googleplus($gp) {
        $furl = "http://query.yahooapis.com/v1/public/yql?q=SELECT * from html where url='https://plus.google.com/%252B".$gp."' AND xpath=\"//div[@class='Nn']//div[@class='rw Uc']//div[@class='Zi']//div[@class='V9b nhe']//div[@class='tQE8Kd BnqoOb']//div[@class='Qhb eZa']//div[@class='vkb']//p\"&format=xml";
        $api = simplexml_load_file(urlencode($furl));
        $followers = (string) $api->results->p;
        return $followers;
    }
    

    【讨论】:

    • 大哥太感谢了!这就像地狱一样! :D 谢谢!
    • Stackoverflow 说你不能在 8 分钟内接受答案。取消此限制后,我会尽可能接受您的回答。好吧,你能告诉我 urlencode 在那边做什么吗?再次感谢!
    • @MehulMohan:由于 URL 通常包含 ASCII 集之外的字符,因此必须将 URL 转换为有效的 ASCII 格式。 URL 编码将不安全的 ASCII 字符替换为 % 后跟两个十六进制数字。在这种情况下,urlencode() 将所有空格替换为 + 符号。请参阅 this demo 以查看应用 urlencode() 后 URL 的样子。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-18
    相关资源
    最近更新 更多