我想使用CURL获取数据,但遇到了问题。当我设置这样的网址
$url = "https://graph.facebook.com/fql?q=SELECT name FROM page"; // continues
我没有归还任何东西。当我复制浏览器url时,这是
$url = "https://graph.facebook.com/fql?q=SELECT%20name%20FROM%20page";
我通过CURL获得结果。我尝试了htmlentities和htmlspecialchars,但运气不佳。
我在这里错过了什么?
$ch = curl_init($url);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
$content = curl_exec($ch);
您可以在curl_init();
中使用urlencode($string);
,或者在之前调用urlencode并将其设置为一个变量,如:
示例:
<?php
$url = 'https://graph.facebook.com/fql?q=';
$query = "SELECT name FROM page WHERE page_id in(SELECT page_id, type FROM page_admin WHERE uid = me() AND type != 'APPLICATION' )&access_token=". $facebook->getAccessToken();
$ch = curl_init(urlencode($query));
$ch = $url.$ch;
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
$content = curl_exec($ch);
php文档:http://php.net/manual/en/function.urlencode.php
错误使用:htmlspecialchar()和htmlentities()
htmlspecialchar()用于剥离URI字符串中的字符和清除数据。使用urldecode将%20等解码为正确的字符串。
相反,使用urlencode($string);将空格、斜杠、与号和其他元素转换为它们各自的URL友好对应元素。
urlencode()
怎么样?
$url = urlencode($url);
看看这是否有效。
$ch = curl_init(urlencode($url));