2

我现在面临的问题是我正在获取一个 URL,如下所示:

www.example.com/example.php?url=www.google.com

现在的问题是,如果我的网址中有一个 get ,如下所示:

www.example.com/example.php?url=www.google.com?id=1

它实际上还没有引起问题,但是如果我的 URL 中有两个 GET 变量,它不知道“和”在哪里,第一个 get 或第二个,基本上只选择第一个,例如:

www.example.com/example.php?url=www.google.com?id=1&username=me

有解决方法吗?我可以重新编码很多东西,让它成为一个变量,但这会涉及很多工作,我希望我能有一个解决方案!谢谢!

这是我的代码:

$facebookapi=new facebook(array('appId'=>'*******','secret'=>'********','fileUpload'=>'false'));
$url='http://******.com/questions/view.php?id=884&username=robot';
$facebookapi->api('/me/******app:answer?question=' . urlencode($url),'POST');
4

2 回答 2

12

您需要urlencodeurl参数进行编码。

$url = 'www.google.com?id=1';
echo 'www.example.com/example.php?url='.urlencode($url).'&username=me';

编辑: 看到您发布的代码后,您似乎应该使用第三个参数作为参数。

$url='http://******.com/questions/view.php?id=884&username=robot';
$facebookapi->api('/me/******app:answer', 'POST', array('question' => $url));
于 2012-06-06T03:24:53.067 回答
0

那么函数urlencode非常适合这个。

一旦 url 被编码,第一个 get 变量将从这个

www.google.com?id=1&username=me

对此

www.google.com%3Fid%3D1&6username=me

然后,您的网站将显示为 [www.example.com/example.php?url=www.google.com%3Fid%3D1%26username%3Dme]

一旦 PHP 接收到该变量,您就可以对其进行解码

$url = urldecode($_GET['url']);

注意:某些版本的 PHP 会自动执行此操作。

于 2012-06-06T03:31:01.423 回答