Php 如何使用curl将其合并到我的脚本中?

Php 如何使用curl将其合并到我的脚本中?,php,curl,Php,Curl,我被建议在我的脚本中使用这个 curl -X POST https://api.twilio.com/2010-04-01/Accounts/HIDDEN/SMS/Messages.json \ -u HIDDEN\ -d "From=+442033228389" \ -d "To=hidden" \ -d 'Body=test' 但是一个简单的剪切粘贴并不能达到目的?我将如何着手将其纳入我的脚本中 结果: 变量转

我被建议在我的脚本中使用这个

        curl -X POST https://api.twilio.com/2010-04-01/Accounts/HIDDEN/SMS/Messages.json \
        -u HIDDEN\
        -d "From=+442033228389" \
        -d "To=hidden" \
        -d 'Body=test'
但是一个简单的剪切粘贴并不能达到目的?我将如何着手将其纳入我的脚本中

结果:

变量转储(输出); 返回:bool(false)

var_dump($info); 返回:

数组(26){[“url”]=>字符串(95) "" [“内容类型”]=>NULL[“http\u代码”]=>int(0)[“标题大小”]=> int(0)[“请求大小”]=>int(0)[“文件时间”]=>int(-1) [“ssl验证结果”]=>int(0)[“重定向计数”]=>int(0) [“总时间”]=>float(0.093)[“名称查找时间”]=>float(0) [“连接时间”]=>float(0.093)[“预传输时间”]=>float(0) [“大小上传”]=>float(0)[“大小下载”]=>float(0) [“速度上传”]=>float(0)[“速度上传”]=>float(0) [“下载内容长度”]=>float(-1)[“上传内容长度”]=> 浮点(-1)[“开始传输时间”]=>float(0)[“重定向时间”]=> 浮动(0)[“重定向url”]=>string(0)”“[“主ip”]=>string(15) “174.129.254.101”[“certinfo”]=>array(0){}[“primary_port”]=> int(443)[“本地ip”]=>string(11)“192.168.0.2”[“本地端口”]=> int(28469)}


如果要从PHP脚本内部执行shell命令,必须使用函数
exec
shell\u exec
system
proc\u open
中的一个函数,或者只使用backtick操作符`

$output = `curl -X POST https://api.twilio.com/2010-04-01/Accounts/HIDDEN/SMS/Messages.json -u HIDDEN -d "From=+442033228389" -d "To=hidden" -d 'Body=test'`;
但是如果您想在PHP中使用curls功能,更好的方法是使用curl扩展。下面是一个例子:

<?php

// check if the curl extension is available
if(!function_exists('curl_init')) {
    die('the curl extension is not installed');
}

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://api.twilio.com/2010-04-01/Accounts/HIDDEN/SMS/Messages.json');
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, "From=+442033228389\nTo=hidden\nBody=test");

$result = curl_exec($ch);

// json_decode is used to translate the result into an object
var_dump(json_decode($result));

你看了吗?看看我给出的答案,我正在向web服务发送数据,而不是提取数据。发送数据遵循相同的路径,例如,你只需将其更改为Post。请查看此处以了解更多详细信息。您仍将使用相同的库。。。我正在用细节更新我的答案。根据你的例子,根据api所需的输入,你可能只需要对数组进行json编码,然后再将其添加到curl_setoptt中。刚才运行了你给我的例子,正在更新所需信息,但我仍然没有收到预期的通知。看起来您缺少身份验证。编辑您的原始问题并删除您的帐户URL项目,这样每个人都不会看到它。此外,您还需要添加我将在上面的示例中编辑的身份验证项。请参见注释。您的示例在vardump上返回null,这与我的完全不同,有什么想法吗?我将使用wireshark跟踪流量
<?php

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://api.twilio.com/2010-04-01/Accounts/HIDDEN/SMS/Messages.json");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, true);

$data = array(
    'From' => '+442033228389',
    'To' => 'hidden',
    'Body' => 'test'
);
/* // WHERE $username = your account username
   // Where $password = Your account password
*/
curl_setopt($ch, CURLOPT_USERPWD, $username . ":" . $password);

curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
$output = curl_exec($ch);
$info = curl_getinfo($ch);
curl_close($ch);