Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么PHP Curl返回T_常量_封装的_字符串?_Php_Json_Curl - Fatal编程技术网

为什么PHP Curl返回T_常量_封装的_字符串?

为什么PHP Curl返回T_常量_封装的_字符串?,php,json,curl,Php,Json,Curl,我试图使用PHP通过JSON从CallRail.com API获取数据 但是,当直接在浏览器中预览PHP文件时,我遇到了这个错误:T\u CONSTANT\u ENCAPSED\u STRING 我的代码: <? curl -H "Authorization: Token token={my-token-id}" \ -X GET \ "https://api.callrail.com/v2/a/{my-account-id}/calls.json" ?> 到目前为止,我已经:

我试图使用PHP通过JSON从CallRail.com API获取数据

但是,当直接在浏览器中预览PHP文件时,我遇到了这个错误:
T\u CONSTANT\u ENCAPSED\u STRING

我的代码:

<?
curl -H "Authorization: Token token={my-token-id}" \
-X GET \
"https://api.callrail.com/v2/a/{my-account-id}/calls.json"
?>

到目前为止,我已经:

  • 在没有找到解决方案或可验证的准确解释的情况下阅读错误
  • 我已经手动重新键入了所有代码,以确保没有任何编码错误的字符或无效的空格
  • 我也试图找到,但没有找到任何有用的
  • 我已经在一个空白的PHP文件中对此进行了测试,因此代码是完全隔离的

我不知道如何进一步调试这个问题,我希望有人能够识别问题,或者从这一点上分享我自己调试这个问题的步骤。

您的代码示例是二进制的,将在类似Bash的shell中从命令行执行,而不是PHP。这就是为什么你会犯这样的错误

如果希望PHP调用外部二进制文件,请使用
exec()
shell\u exec()
system()

另外,为了便于移植,永远不要使用
short-open标记
,因为它取决于
short\u-open\u标记
php.ini指令,或者php是否使用
--enable-short-tags
编译

即使你的代码不必是可移植的,这只是一个坏习惯。以防将来需要使用一些可移植的PHP代码;尝试:

<?php
echo shell_exec('curl -H "Authorization: Token token={my-token-id}" -X GET "https://api.callrail.com/v2/a/{my-account-id}/calls.json"');

你的完整代码是什么?你的php代码在哪里?这是我的完整代码。它在一个PHP文件中,而不是PHP。它是用于命令行的@这就是为什么会出现语法错误。上面是命令行curl,不是php的curl。好的,谢谢。据我理解,“二进制”只是指任何和所有代码。你不是说“狂欢”吗?另外,我不知道什么是短开放标签,或者它是如何相关的。你能在回答中澄清一下吗?
<?php
echo shell_exec ( implode ( " ", [ 
        'curl',
        '-H "Authorization: Token token={my-token-id}"',
        '-X GET',
        '"https://api.callrail.com/v2/a/{my-account-id}/calls.json"' 
] ) );