Почему PHP Curl возвращает T_CONSTANT_ENCAPSED_STRING? - PullRequest
0 голосов
/ 07 мая 2018

Я пытаюсь использовать PHP для получения данных из API CallRail.com через JSON.

Тем не менее, я получаю эту ошибку при предварительном просмотре моего PHP-файла прямо в браузере: T_CONSTANT_ENCAPSED_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 Ответ

0 голосов
/ 07 мая 2018

Ваш пример кода является двоичным и выполняется из командной строки в оболочке, такой как Bash, а не PHP. Вот почему вы получаете эту ошибку.

Если вы хотите, чтобы PHP вызывал внешний двоичный файл, используйте exec(), shell_exec() или system().

Кроме того, для переносимости никогда не используйте short open tags, потому что это зависит от директивы short_open_tag 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"');

Или, если вам нужно несколько строк, вы можете использовать implode:

<?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"' 
] ) );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...