【问题标题】:PHP POST curl terminal command in PHP scriptPHP脚本中的PHP POST curl终端命令
【发布时间】:2013-07-22 14:38:38
【问题描述】:

我在 StackOverflow 的答案 here 中找到了我想将数据发布到另一个 Web url 的方式。

但是,我希望在我的 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);
?>

最好的方法是什么?

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

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

【问题讨论】:

  • 你运行了这段代码吗?没有不正确的字符串,你就在正确的轨道上。
  • 我做到了,只是为了确定。它没有访问 url,而我的终端命令正在工作(我添加到问题中)。
  • 好吧,$myjson 设置不正确...将第一个和最后一个 " 更改为 ' ;)(正确引用!)

标签: php post curl


【解决方案1】:

有两个问题:

  1. 您需要正确引用$myjson。阅读 PHP 中 single and double quoted strings 之间的区别。
  2. 您没有发送 curl 请求: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);

【讨论】:

  • 非常感谢您的帮助。我不敢相信我忘记了! :)
猜你喜欢
  • 2016-03-20
  • 2016-11-12
  • 2014-04-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-03-07
  • 1970-01-01
  • 2021-10-24
相关资源
最近更新 更多