主题:[讨论]PHP4 如何用 POST 方法在网页服务器之间传递数据
Leo64823900
[专家分:960] 发布于 2006-12-08 01:17:00
环境: 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个回复)
沙发
qining-china [专家分:1150] 发布于 2006-12-08 11:48:00
请使用curl或者socket函数
板凳
Leo64823900 [专家分:960] 发布于 2006-12-08 20:23:00
谢谢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);
?>
是否还有其他简单一点的方法?
我来回复