如何将网址转换为类似网址的浏览器? (...%20 ...)

时间:2012-03-22 17:21:06

标签: php curl

我想使用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);

3 个答案:

答案 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()htmlentities()

htmlspecialchars()用于剥离字符并清理URI字符串中的数据。使用urldecode将%20's解码为正确的字符串。

反过来使用urlencode($ string);将空格,斜杠,&符号和其他元素转换为各自的URL友好对应物。

答案 2 :(得分:0)

看看是否有效。

  $ch = curl_init(urlencode($url));