没有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数据[重复]的主要内容,如果未能解决你的问题,请参考以下文章

简单表单不通过_POST发送数据[重复]

php与web页面交互

php避免form表单重复提交

我的网络表单没有链接到我的电子邮件 [重复]

php中提交表单数据的POST()方法和GET()方法

PHP入门PHP与Web页面交互