PHP重新发布数据

时间:2012-09-30 20:45:51

标签: php post curl

我收到发布到我的域名网址的数据,检查某些字段值,必要时更新数据库,然后将收到的数据发布到另一个网址。

不幸的是,我发布的网址(https)没有测试平台或类似的东西所以我需要确保我发布的内容是收到的。

这看起来是一种合理的方法吗?

由于

foreach($_POST as $key=>$value) 
{ 
    $fields_string .= $key.'='.$value.'&'; 
}
$fields_string = substr_replace($fields_string, "", -1);

$ch = curl_init();
curl_setopt( $ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)" );
curl_setopt( $ch, CURLOPT_URL, "https://anotherdomain.com/script.php");
curl_setopt( $ch, CURLOPT_ENCODING, "" );
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true );
curl_setopt( $ch, CURLOPT_AUTOREFERER, true );
curl_setopt( $ch, CURLOPT_SSL_VERIFYPEER, false );
curl_setopt( $ch, CURLOPT_CONNECTTIMEOUT, 30 );
curl_setopt( $ch, CURLOPT_TIMEOUT, 30 );
curl_setopt( $ch, CURLOPT_MAXREDIRS, 10 );
curl_setopt( $ch, CURLOPT_POST, 1);
curl_setopt( $ch, CURLOPT_POSTFIELDS, $fields_string);
$result = curl_exec($ch);   
$response = curl_getinfo( $ch );    
curl_close($ch);    

$fh = fopen('audit.log', 'a');
fwrite($fh, $response."\r\n");
fclose($fh);

1 个答案:

答案 0 :(得分:1)

CURLOPT_POSTFIELDS可以直接array

这样可以正常工作:

 curl_setopt( $ch, CURLOPT_POSTFIELDS, $_POST);

如果服务器关闭,您还需要管理多次尝试.....