我正在使用curl,我想知道如何将我的页面上的发布/提交数据发送到这些网站?该网站有“主机,时间,端口”。我的MYSQL数据库有一个url列表。我在考虑curl_multi
,但我不确定。
请有人发帖说明。它必须是一种快速的方法。
基本上是对网址和帖子进行讨论。
while($resultSet = mysql_fetch_array($SQL)){
$ch = curl_init($resultSet['url'] . $fullcurl);
curl_setopt($ch, CURLOPT_TIMEOUT, 2);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
}
答案 0 :(得分:1)
The PHP cURL reference表示设置为CURLOPT_POST
的{{1}}选项会使其成为POST请求。 true
设置您将以CURLOPT_POSTFIELDS
格式发送的字段(可以使用foo=bar&spam=eggs
从数组构建的字段。)
http_build_query
答案 1 :(得分:0)
试一试:
while ($resultSet = mysql_fetch_assoc($SQL)) {
$ch = curl_init($resultSet['url']);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_TIMEOUT,2);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $fullcurl);
$response = curl_exec($ch);
curl_close();
}
答案 2 :(得分:0)
以下是有关如何使用curl_multi执行此操作的示例。虽然你应该分解它,所以你只有一定数量的URL一次出去(即30)。我添加了你通常想要的跟随位置指令。
$mh = curl_multi_init();
$ch = array();
while($resultSet = mysql_fetch_array($SQL)){
$ch[$i] = curl_init($resultSet['url'] . $fullcurl);
curl_setopt($ch[$i], CURLOPT_TIMEOUT, 2);
curl_setopt($ch[$i], CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch[$i], CURLOPT_FOLLOWLOCATION, true);
curl_multi_add_handle($mh, $ch[$i]);
}
$running = null;
do {
curl_multi_exec($mh,$running);
} while ($running > 0);
$num = count($ch);
for ($i=0; $i<$num; $i++ ) {
curl_multi_remove_handle($mh, $ch[$i]);
}
curl_multi_close($mh);