PHP 脚本中的 PHP POST curl 终端命令

All*_*Cat 4 php post curl

我在 StackOverflow 的答案中找到了想要如何将数据发布到另一个网址的信息。

但是,我希望在我的 php Web 脚本中执行此命令,而不是从终端执行。从查看curl文档来看,我认为它应该是这样的:

<?php 

$url = "http://myurl.com";
$myjson = "{\"column1\":\"1\",\"colum2\":\"2\",\"column3\":\"3\",\"column4\":\"4\",\"column5\":\"5\",\"column6\":\"6\"}";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, TRUE);
curl_setopt($ch, CURLOPT_POSTFIELDS, $myjson);
curl_close($ch);
?>
Run Code Online (Sandbox Code Playgroud)

最好的方法是什么?

当前正在运行的终端命令是:

curl -X POST -H "Content-Type: application/json" -d '{"column1":"1","colum2":"2","column3":"3","column4":"4","column5":"5","column6":"6"}' https://myurl.com
Run Code Online (Sandbox Code Playgroud)

Jas*_*ary 5

有两个问题:

  1. 您需要正确引用$myjson。了解PHP 中单引号字符串和双引号字符串的区别。
  2. 您没有发送卷曲请求:curl_exec()

这应该会让你朝着正确的方向前进:

<?php
$url = 'http://myurl.com';
$myjson = '{"column1":"1","colum2":"2","column3":"3","column4":"4","column5":"5","column6":"6"}';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, TRUE);
curl_setopt($ch, CURLOPT_POSTFIELDS, $myjson);
$result = curl_exec($ch);
curl_close($ch);
Run Code Online (Sandbox Code Playgroud)