【发布时间】:2018-09-10 18:30:04
【问题描述】:
我从 GET 传递一个 url 并用它发出一个 curl 请求,但是 url 需要编码。
我已尝试使用正确的函数 urlencode,但我似乎无法让它工作。也许我没有正确启动它,不确定。
我已经尝试过很多变种...
<?php
$url=$_GET['url'];
$encoded=$urlencode['url'];
exec("curl '".$encoded."' -H
............etc
在测试时,如果我在通过 mysite.com/curl.php?url= 之前对 url 进行编码,curl 脚本会执行良好。
感谢收看。
【问题讨论】:
-
"在测试时,如果我在通过 mysite.com/curl.php?url= 之前对 url 进行编码,curl 脚本执行良好。" — 这是因为您错误地识别了问题。 URL 需要进行 URL 编码,以便您可以从
$_GET读取它,而不是您可以将其传递给curl。 -
那么
$urlencode['url']中使用的数组$urlencode在哪里或是什么?或者这是问题的一部分,也许是错字? -
将error reporting 添加到文件顶部测试时在您打开PHP 标记之后,例如
<?php error_reporting(E_ALL); ini_set('display_errors', 1);,看看它是否会产生任何结果。跨度> -
@Quentin - 这完全有道理。感谢您指出这一点。因此,在您发表评论之后,我所做的是在将 url 传递给 mysite.com/curl.php?url= 之前对 url 进行 base64 编码。然后在 php 脚本中,_GET 能够获取 base64,然后我可以对其进行解码并传递给我的 curl。非常感谢您的帮助。如您所见,我是新手。
-
@MiguelGuerrero — 为什么要对它进行 base64 编码?这只是意味着您必须付出额外的努力才能对其进行 base64 解码。而是对其进行 URL 编码。