发布到 PHP 脚本中的另一个页面
如何在 php 脚本中向其他 php 页面发出发布请求?我有一台前端计算机作为 html 页面服务器,但是当用户单击按钮时,我希望后端服务器进行处理,然后将信息发送回前端服务器以显示用户。我是说我可以在后端计算机上有一个php页面,它会将信息发送回前端。那么再一次,我如何从php页面向另一个php页面执行POST请求?
如何在 php 脚本中向其他 php 页面发出发布请求?我有一台前端计算机作为 html 页面服务器,但是当用户单击按钮时,我希望后端服务器进行处理,然后将信息发送回前端服务器以显示用户。我是说我可以在后端计算机上有一个php页面,它会将信息发送回前端。那么再一次,我如何从php页面向另一个php页面执行POST请求?
让PHP执行POST请求的最简单方法可能是使用cURL,要么作为扩展,要么简单地扩展到另一个进程。下面是一个帖子示例:
// where are we posting to?
$url = 'http://foo.com/script.php';
// what post fields?
$fields = array(
'field1' => $field1,
'field2' => $field2,
);
// build the urlencoded data
$postvars = http_build_query($fields);
// open connection
$ch = curl_init();
// set the url, number of POST vars, POST data
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, count($fields));
curl_setopt($ch, CURLOPT_POSTFIELDS, $postvars);
// execute post
$result = curl_exec($ch);
// close connection
curl_close($ch);
另请查看Zend框架中的Zend_Http组类,它提供了一个功能强大的HTTP客户端,直接用PHP编写(不需要扩展)。
2014 EDIT - 嗯,自从我写那篇文章以来已经有一段时间了。这些天值得检查Guzzle,它再次可以使用或不可以使用卷曲扩展。
假设你的php安装有CURL扩展,这可能是最简单的方法(如果你愿意的话,也是最完整的)。
示例代码段:
//set POST variables
$url = 'http://domain.com/get-post.php';
$fields = array(
'lname'=>urlencode($last_name),
'fname'=>urlencode($first_name),
'email'=>urlencode($email)
);
//url-ify the data for the POST
foreach($fields as $key=>$value) { $fields_string .= $key.'='.$value.'&'; }
rtrim($fields_string,'&');
//open connection
$ch = curl_init();
//set the url, number of POST vars, POST data
curl_setopt($ch,CURLOPT_URL, $url);
curl_setopt($ch,CURLOPT_POST, count($fields));
curl_setopt($ch,CURLOPT_POSTFIELDS, $fields_string);
//execute post
$result = curl_exec($ch);
//close connection
curl_close($ch);
积分归 http://php.dzone.com。另外,不要忘记访问PHP手册中的相应页面