当前位置: 首页 > 知识库问答 >
问题:

为什么PHP Curl返回T_CONSTANT_ENCAPSED_STRING?

袁耀
2023-03-14

我正在尝试使用PHP从CallRail获取数据。通过JSON的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文档中的官方留档,但没有找到任何有用的东西。
  • 我在一个空白的PHP文件中测试了这个,所以代码是完全隔离的。

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

共有1个答案

白博赡
2023-03-14

您的代码示例是二进制的,将在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
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"' 
] ) );
 类似资料:
  • 问题内容: 这是简单的代码,我没有得到设置位图的结果,而是得到了null。谁能告诉我我在哪里犯错了? 更新 好的,所以我无法像我想的那样将文本转换为图像。这样呢 这会创建位图吗? 问题答案: 从文档中: 返回 解码的位图;如果无法解码图像,则 返回 null。 字符串“ test”中涉及的字节不是有效的位图,对吗? 如果将文本“ test”保存在名为or 等的文件中,并试图在Windows中打开它

  • 问题内容: 为什么要用Python返回? 我如何获得改组后的值而不是? 问题答案: 更改列表 到位 。 在原位更改结构的Python API方法通常返回,而不是修改后的数据结构。 如果要基于现有列表创建 新的 随机混排列表,并按顺序保留现有列表,则可以使用输入的完整长度: 您还可以将with用于排序键: 但这会调用排序(O(NlogN)操作),而采样到输入长度仅需要O(N)操作(与所使用的过程相同

  • 问题内容: 我正在使用a 检查我的哈希密码。我有PHP 5.5: 我上车了。我已经检查了posts的值和mysql user_password_hash返回。 我不知道为什么它返回假 有任何想法吗? 问题答案: 手册中的列长度可能是问题所在: 建议将结果存储在可扩展超过60个字符的数据库列中(255个字符是一个不错的选择)。 链接

  • 问题内容: 我已经存储了在该数据库中插入并插入记录的过程。我想获取最后插入的记录的ID。返回NULL并返回正确的ID,为什么会发生?如我所读,因此最好在表上有一些触发器的情况下使用。我可以使用吗?不论触发器如何,它是否都在表的范围内返回ID? 那么问题是什么以及使用什么呢? 已编辑 问题答案: 就像奥德(Oded)所说的那样,问题在于您在执行之前要先询问身份。 作为解决方案,最好尽可能地接近运行。

  • 我正在尝试访问项目中的文件。但是getResource方法返回null。 以及eclipse工作区中项目文件夹的外观: 为什么啊?我想访问我的资产文件夹中的文件? 编辑我创建了一个jar文件,这是jar的内容: 已解决 首先,我有很多图像文件,所以我想把它们组织在一个文件夹中。我把assets文件夹放在src目录中,最后我能够访问这些文件。

  • 问题内容: 据我了解,sys.getrefcount()返回对象的引用数,在以下情况下“应”为1: 但是,结果是2!所以,如果我: “ numpy.array([1.2,3.4])”对象是否仍然存在(没有垃圾回收)? 问题答案: 当您调用时,引用将按值复制到函数的参数中,从而临时增加了对象的引用计数。这是第二个引用来源。 在文档中对此进行了解释: 返回的计数通常比您预期的高一,因为它包含(临时)引