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

时间:2013-07-22 14:38:39

标签: php post curl

我在StackOverflow回答here时发现了我想要将数据发布到另一个网址的确切方式。

但是,我希望这个命令在我的php web脚本中执行,而不是从终端执行。从查看卷曲文档,我认为它应该是:

<?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);
?>

最好的方法是什么?

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

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

1 个答案:

答案 0 :(得分:4)

有两个问题:

  1. 您需要正确引用$myjson。阅读PHP中single and double quoted strings之间的区别。
  2. 您没有发送卷曲请求:curl_exec()
  3. 这应该会让你朝着正确的方向前进:

    <?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);