0

我正在使用 curl_setopt 来评估来自不同服务器的另一个文件,链接类似于“ http://somewhere.com/index.php?vars=hello

现在在某处.com/index.php 我需要获取使用 curl 传递的 vars 的值,但到目前为止我根本无法获得任何值。

这是我的示例代码供您参考,它来自调用某处的文件:

$d = "http://somewhere.com/index.php?vars=hello";
$ch1 = curl_init();

curl_setopt($ch1, CURLOPT_AUTOREFERER, TRUE);
curl_setopt($ch1, CURLOPT_HEADER, 0);
curl_setopt($ch1, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch1, CURLOPT_URL, $d);
curl_setopt($ch1, CURLOPT_FOLLOWLOCATION, TRUE);       

$data1 = curl_exec($ch1);
eval($data1);
curl_close($ch1);

在somewhere.com/index.php 我已经做了 print_r($_GET); 查看任何传递给文件的值,但它什么也没返回。

4

2 回答 2

1

带有变量“hello”的 index.php 文件中发生了什么?当您在另一个页面上进行 curl 发布时,其他页面通常会回显一个响应,而该响应就是您评估的内容。您可以从 index.php 发布您的代码,以便我们可以看到您正在尝试做什么?

编辑:您还可以使用 chrome 检查器、提琴手或其他一些网络监视器来查看 http 请求是否真的被触发并检查您是否真的得到了 200 响应。

编辑:我也不知道你在用什么 eval ,只是回显响应。如果您有输出缓冲区问题,请在回显响应之前开始缓冲,例如:

     ob_start():
     echo $data1;
     ob_end_clean();

此外,如果您想查看是否收到任何错误,请执行以下操作:

     if(curl_exec($ch1) === false)
     {
     echo 'Curl error: ' . curl_error($ch1);
     } 
     else
     {
     echo $data1;
     }

     // Close handle
     curl_close($ch1);
于 2013-04-17T19:57:04.083 回答
0

你不能用$_GET[]吗?

IE $variables = $_GET['vars'];

于 2013-04-17T19:57:20.663 回答