API Zomato, написанный на PHP, не работает в Google App Engine - PullRequest
1 голос
/ 04 октября 2019

Используя API Zomato, я написал простой код PHP, чтобы получить данные JSON для пиццы поискового запроса. Но по какой-то причине он не работает, когда я загружаю его в Google App Engine.

Я попытался запустить код PHP на моем локальном хосте с помощью xampp, и он работает. Но когда я запустил код в облаке Google, он показывает пустую страницу без сообщений об ошибках.

Это код PHP, который я пытаюсь запустить на Google App Engine

  <?php
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, "https://developers.zomato.com/api/v2.1/search?q=pizza&start=0&count=10");
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET");
    $headers = array(
      "Accept: application/json",
      "User-Key: f0baf53bd8c31d3c625e9d9c0d379379"
      );
    curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
    $result = curl_exec($ch);
    if (curl_errno($ch)) {
        echo 'Error:' . curl_error($ch);
    }
    curl_close ($ch);
    echo "<pre>"; 
    print_r($result); 
    echo "
";?>

Файл app.yaml, который я написал для отправки своего кода на облачную платформу Google

runtime: php55
api_version: 1

handlers:
- url: /
  script: index.php

В настоящее время я совершенно растерялся, надеюсь, кто-нибудь может дать мне немногопонимание этой проблемы

РЕДАКТИРОВАТЬ: Благодаря приведенному ниже комментарию JohnHanley я обнаружил следующее сообщение об ошибке, отображаемое моей консолью Google App Engine: «Неустранимая ошибка PHP: вызов неопределенной функции curl_init () в / base / data / home»/apps/f~cloud-assignment-2-254823/20191005t035406.421500489485193".

Я, по-видимому, нашел сообщение об ошибке и обнаружил, что по умолчанию Google App Engine не распознает функцию curl_init () и, по-видимому,Мне нужно включить его, добавив файл php.ini и записав несколько строк кода в файл php.ini, прежде чем отправлять его в облако. Извините, я довольно новичок в этом, может кто-токак мне?

1 Ответ

2 голосов
/ 05 октября 2019

Благодаря Джону Хэнли (John Hanley) из комментариев и небольшому поиску в Google я обнаружил следующее сообщение о переполнении стека: Ошибка файла app.yaml: вызов неопределенной функции curl_init () , которая решила мою проблему.

Очевидно, что по умолчанию расширение cURL Google App Engine отключено, поэтому появляется сообщение об ошибке, в котором говорится, что функция curl_init () не распознана, и для ее активации необходимо создать php.ini со строкой "google_app_engine.enable_curl_lite = 1" внутри идобавляется в папку с файлом app.yaml перед отправкой в ​​облако.

...