回 帖 发 新 帖 刷新版面

主题:[讨论]PHP4 如何用 POST 方法在网页服务器之间传递数据

环境: Windows 2K, IIS and PHP 4.3.9

我想设计一个PHP网页, 当客户访问该网页时,PHP程序能用 POST 的方法与其他的网页服务器交换数据。

我查了下PHP手册,发现函数 fopen 和 file_get_contents 在版本5 可用。但遗憾的是在PHP版本4, 函数不支持 context 参数。因此只能用 GET 方法向其他的网页服务器提交数据,而无法使用 POST 的方法提交数据。

请问:在PHP4下, 如何实现 POST 方法的数据传递。谢谢!

回复列表 (共2个回复)

沙发

请使用curl或者socket函数

板凳

谢谢1 楼.
我查到了一个使用socket函数的例子。不知道如何使用curl,能不能给个例子。

Example 2. Making a POST request to an https server

<?php
/* Send POST request to https://secure.example.com/form_action.php
* Include form elements named "foo" and "bar" with dummy values
*/

$sock = fsockopen("ssl://secure.example.com", 443, $errno, $errstr, 30);
if (!$sock) die("$errstr ($errno)\n");

$data = "foo=" . urlencode("Value for Foo") . "&bar=" . urlencode("Value for Bar");

fwrite($sock, "POST /form_action.php HTTP/1.0\r\n");
fwrite($sock, "Host: secure.example.com\r\n");
fwrite($sock, "Content-type: application/x-www-form-urlencoded\r\n");
fwrite($sock, "Content-length: " . strlen($data) . "\r\n");
fwrite($sock, "Accept: */*\r\n");
fwrite($sock, "\r\n");
fwrite($sock, "$data\r\n");
fwrite($sock, "\r\n");

$headers = "";
while ($str = trim(fgets($sock, 4096)))
  $headers .= "$str\n";

echo "\n";

$body = "";
while (!feof($sock))
  $body .= fgets($sock, 4096);

fclose($sock);
?>  
 
是否还有其他简单一点的方法?

我来回复

您尚未登录,请登录后再回复。点此登录或注册