【问题标题】:PHP POST data without web form [duplicate]没有Web表单的PHP POST数据[重复]
【发布时间】:2013-10-27 14:17:45
【问题描述】:

有没有办法在不使用 Web 表单的情况下发送 POST 数据?我正在使用第 3 方付款处理器,我可以选择手动提交付款,但数据需要采用 POST 格式。

我计划将我的脚本作为 CRON 作业运行,因此它是自动化的,无需用户通过 Web 表单提交进行输入。

提前致谢。

【问题讨论】:

标签: php forms post web


【解决方案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()

【讨论】:

    猜你喜欢
    • 2023-03-17
    • 2018-08-07
    • 2013-09-07
    • 2012-10-08
    • 2011-08-10
    • 1970-01-01
    • 2015-03-11
    • 1970-01-01
    • 2011-09-17
    相关资源
    最近更新 更多