我想使用CURL获取数据,但我遇到了问题。当我像这样设置网址时
$url = "https://graph.facebook.com/fql?q=SELECT name FROM page"; // continues
我没有退回任何东西。当我复制浏览器网址时,这是
$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);
答案 0 :(得分:2)
urlencode()
怎么办?
$url = urlencode($url);
答案 1 :(得分:2)
您可以在urlencode($string);
中使用curl_init();
或在之前调用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
htmlspecialchars()用于剥离字符并清理URI字符串中的数据。使用urldecode将%20's解码为正确的字符串。
反过来使用urlencode($ string);将空格,斜杠,&符号和其他元素转换为各自的URL友好对应物。
答案 2 :(得分:0)
看看是否有效。
$ch = curl_init(urlencode($url));