2014-03-29 204 views
0

不浪費一秒鐘,看看這個代碼:爲什麼SimpleXML_load_file返回空白輸出?

$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); ?> 

與參數GP = mehulmohan在URL,它應該返回是這樣的:

539圈了他的

檢查這個網址與mehulmohan

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

回答

1

編碼中相應的URL的字符正確使用urlencode()。並且記得總是將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; 
} 
+0

讓我試試看吧。 – mehulmpt

+0

哦,兄弟非常感謝!這就像一個地獄! :D謝謝你! – mehulmpt

+0

Stackoverflow說你不能在8分鐘內接受答案。如果刪除此限制,我會盡可能接受您的答案。那麼,你能告訴我urlencode在那裏做什麼嗎?再次感謝! – mehulmpt

相關問題