PHP:向带有curl的.PHP文件发送POST请求时遇到困难
我有一个php文件,比如说PHP:向带有curl的.PHP文件发送POST请求时遇到困难,php,curl,http-post,Php,Curl,Http Post,我有一个php文件,比如说a.php,它通过$\u POST方法获取一些变量,并更新本地数据库 另一个名为dataGather.php的php文件以正确的形式收集数据,然后尝试使用A.php文件将数据发送到本地数据库。请注意,这两个文件位于同一目录中 我使用curl函数执行POST请求的代码如下: $url = "A.php"; $ch = curl_init(); $curlConfig = array( CURLOPT_URL =
a.php
,它通过$\u POST
方法获取一些变量,并更新本地数据库
另一个名为dataGather.php
的php文件以正确的形式收集数据,然后尝试使用A.php
文件将数据发送到本地数据库。请注意,这两个文件位于同一目录中
我使用curl函数执行POST
请求的代码如下:
$url = "A.php";
$ch = curl_init();
$curlConfig = array(
CURLOPT_URL => $url,
CURLOPT_POST => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POSTFIELDS => $datatopost
);
curl_setopt_array($ch, $curlConfig);
$result = curl_exec($ch);
curl_close($ch);
echo $result;
$datatopost = array (
"value1" => $val1,
"value2" => $val2,
etc
}
$datatopost
是一个如下所示的数组:
$url = "A.php";
$ch = curl_init();
$curlConfig = array(
CURLOPT_URL => $url,
CURLOPT_POST => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POSTFIELDS => $datatopost
);
curl_setopt_array($ch, $curlConfig);
$result = curl_exec($ch);
curl_close($ch);
echo $result;
$datatopost = array (
"value1" => $val1,
"value2" => $val2,
etc
}
问题是,当我运行程序时,会得到以下结果:
Fatal error: Maximum execution time of 30 seconds exceeded in
C:\xampp\htdocs\dataGather.php on line 97
有人知道为什么会这样吗?提前谢谢
PS:A.php文件
A.php
是100%正确的,因为我通过收集javascript所需的信息对其进行了测试。它以我想要的方式通知数据库。另外,数组$datatopost
的所有信息的格式都正确。我怀疑您直接运行php脚本而不使用web服务器,而只是将脚本作为可执行文件启动。这是由您在错误消息中有一个绝对路径这一事实所暗示的。虽然运行这样的php脚本是绝对好的,但您必须问问自己:cURL调用实际上是做什么的?它不会打开并运行您试图引用的php文件A.php
。为什么不呢?因为cURL打开的是URL,而不是文件。如果不使用能够对url请求做出反应的服务器(比如http服务器),您希望发生什么
您得到的错误是超时,因为cURL试图联系http服务器。由于您没有指定有效的URL,它很可能会返回到“localhost”。但是没有服务器在那里侦听…因此响应时间太长。你有没有试过在电话之外发布,比如从网页上,看它是否在滴答滴答地响?是的,我试过看它是否收集了信息,而且它在不到一秒钟的时间内就收集到了,我甚至打印了所有的信息,看它的格式是否正确。在datagather内部,我使用POST方法将数据保存在本地数据库中。我试着在localhost下运行它,如果在网页上运行它会有什么不同吗?非常感谢,这确实是个问题!!我将$url更改为“”,它成功了!哇,快凌晨2点了,真不敢相信我为此浪费了2个小时。