如何使用 PHP 向 URL 提交 HTTP POST 请求


How to submit a HTTP POST request to a URL using PHP?

我有一些数据想作为HTTP POST请求发送到特定的URL。我已经用谷歌搜索和阅读了几个小时,但我坚持编写实际的代码。

我可以创建我需要的完整 URL,如果我回显以下 sms_url 变量并将其手动粘贴到浏览器地址栏中,则短信发送成功。我的问题是我如何让 PHP 在单击按钮后自动执行此操作?

    <?php
    $customer = '4512121212';
    //Create variable $sms_url to send sms to customer
    // The neccesary variables
    $sms_message = ("this is a test");
    $sms_url = "http://www.theurl.com/sms/";
    $sms_url .= "?message=" . urlencode($sms_message); //messages
    $sms_url .= "&recipient=$customer"; // Recipient
    $sms_url .= "&username=x"; // Username
    $sms_url .= "&password=x"; // Password
    $sms_url .= "&from=" . urlencode("company name"); // Sendername
    $sms_url .= "&utf8=1"; //UTF8 encoded
    echo $sms_url. "<br>";
now what??
    ?>

更新和编辑

我用卷曲测试过,但它不起作用?

$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_URL, $sms_url);
$content = curl_exec($ch);
var_dump($content);
?>

关于可能出现什么问题的任何建议?

更新和解决

下面的代码有效。

$curl = curl_init($sms_url);
$errmsg  = curl_error( $curl );
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$result = curl_exec ($curl);
curl_close ($curl);  
?>

更新:执行 GET 请求而不是 POST 请求(根据您的问题,我可以假设 GET 请求肯定有效(您可以这样做而无需重定向用户:

http_get($sms_url);

如果您仍在寻找发布请求,则可以查看 http_post_data((