如何在php脚本中向不同的php页面发送帖子请求?我有一台前端计算机作为html页面服务器,但当用户单击一个按钮时,我希望后端服务器进行处理,然后将信息发送回前端服务器以显示用户.我说我可以在后端计算机上有一个php页面,它会将信息发送回前端.再一次,如何从php页面向另一个php页面发出POST请求?
Pau*_*xon 46
可能使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);
Run Code Online (Sandbox Code Playgroud)
还要查看Zend框架中的Zend_Http类集,它提供了一个非常强大的HTTP客户端,直接用PHP编写(无需扩展).
2014年编辑 - 好吧,自从我写这篇文章以来已经有一段时间了.这些天值得检查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);
Run Code Online (Sandbox Code Playgroud)
积分转到http://php.dzone.com.另外,不要忘记访问PHP手册中的相应页面