发布到PHP脚本中的另一个页面

QAH*_*QAH 27 php post request

如何在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,它可以在有或没有卷曲延伸的情况下工作.


J.C*_*cio 6

假设你的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手册中的相应页面