PHP - 如何向网站发送请求?

时间:2010-09-11 21:50:55

标签: php curl

我正在使用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); 
}

3 个答案:

答案 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);