没有Web表单的PHP POST数据[重复]
Posted
技术标签:
【中文标题】没有Web表单的PHP POST数据[重复]【英文标题】:PHP POST data without web form [duplicate] 【发布时间】:2013-10-27 14:17:45 【问题描述】:有没有办法在不使用 Web 表单的情况下发送 POST 数据?我正在使用第 3 方付款处理器,我可以选择手动提交付款,但数据需要采用 POST 格式。
我计划将我的脚本作为 CRON 作业运行,因此它是自动化的,无需用户通过 Web 表单提交进行输入。
提前致谢。
【问题讨论】:
cURL php.net/manual/en/book.curl.php 您可以使用 Guzzle:guzzlephp.org 【参考方案1】:试试卷曲
http://php.net/manual/en/book.curl.php
//set POST variables
$url = 'http://domain.com/get-post.php';
$fields = array(
'lname' => urlencode($last_name),
'fname' => urlencode($first_name),
'title' => urlencode($title),
'company' => urlencode($institution),
'age' => urlencode($age),
'email' => urlencode($email),
'phone' => urlencode($phone)
);
//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);
【讨论】:
那太好了example 你在那里举起。 嗨@Andy,我可以根据他的需要调整答案,但因为他没有提供任何答案,我想一个很好的例子是受欢迎的;-) @VanckeiP CURLOPT_POST 怎么样,你添加了“count($fields)” - 所以这应该提供字段的数量?我见过的大多数例子只加了一个“1”..很难找到这方面的信息。 使用 http_build_query($fields) 一次性对整个数据数组进行 urlencode 比使用循环容易得多:secure.php.net/manual/en/function.http-build-query.php 这条线真的有什么作用吗? rtrim($fields_string, '&');应该是:$fields_string = rtrim($fields_string, '&');【参考方案2】:您可以使用 cURL 扩展,甚至可以使用带有自定义上下文的 file_get_contents()
。
【讨论】:
以上是关于没有Web表单的PHP POST数据[重复]的主要内容,如果未能解决你的问题,请参考以下文章