用 PHP 编写的 Zomato API 在 Google App Engine 中不工作
Zomato API written in PHP not working in Google App Engine
使用 Zomato API 我编写了一个简单的 PHP 代码来获取搜索查询披萨的 JSON 数据。但是由于某种原因,当我将它推送到 Google App Engine 时它不起作用。
我已经尝试使用 xampp 在我的本地主机中 运行 连接 PHP 代码并且它有效。但是当我 运行 Google 云中的代码时,它向我显示了一个没有错误消息的空白页面。
这是我在 Google App Engine
上尝试 运行 的 PHP 代码
<?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 "</pre>";
?>
我写的app.yaml把我的代码推送到Google云平台
runtime: php55
api_version: 1
handlers:
- url: /
script: index.php
我现在很迷茫,希望有人能给我一些关于这个问题的见解
编辑:感谢 JohnHanley 在下面的评论,我发现我的 Google App Engine 控制台显示了以下错误消息:"PHP Fatal error: Call to undefined function curl_init() in /base/data/home/apps/f~cloud-assignment-2-254823/20191005t035406.421500489485193".
我显然用谷歌搜索了错误消息,发现显然默认情况下 Google App Engine 无法识别 curl_init() 函数,显然我需要通过添加 [=31] 来启用它=] 文件并在 php.ini 文件中写入几行代码,然后再将其推送到云端。抱歉,我对此很陌生,有人可以告诉我怎么做吗?
感谢 John Hanley 的评论和一些谷歌搜索,我发现这个堆栈溢出 post:app.yaml file mistake : Call to undefined function curl_init() 解决了我的问题。
显然在默认情况下,cURL 扩展 Google App Engine 被禁用,因此错误消息指出 curl_init() 函数无法识别,要激活它,需要 php.ini在将文件推送到云之前,使用 "google_app_engine.enable_curl_lite = 1" 行创建并添加到包含 app.yaml 文件的文件夹中。
使用 Zomato API 我编写了一个简单的 PHP 代码来获取搜索查询披萨的 JSON 数据。但是由于某种原因,当我将它推送到 Google App Engine 时它不起作用。
我已经尝试使用 xampp 在我的本地主机中 运行 连接 PHP 代码并且它有效。但是当我 运行 Google 云中的代码时,它向我显示了一个没有错误消息的空白页面。
这是我在 Google App Engine
上尝试 运行 的 PHP 代码 <?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 "</pre>";
?>
我写的app.yaml把我的代码推送到Google云平台
runtime: php55
api_version: 1
handlers:
- url: /
script: index.php
我现在很迷茫,希望有人能给我一些关于这个问题的见解
编辑:感谢 JohnHanley 在下面的评论,我发现我的 Google App Engine 控制台显示了以下错误消息:"PHP Fatal error: Call to undefined function curl_init() in /base/data/home/apps/f~cloud-assignment-2-254823/20191005t035406.421500489485193".
我显然用谷歌搜索了错误消息,发现显然默认情况下 Google App Engine 无法识别 curl_init() 函数,显然我需要通过添加 [=31] 来启用它=] 文件并在 php.ini 文件中写入几行代码,然后再将其推送到云端。抱歉,我对此很陌生,有人可以告诉我怎么做吗?
感谢 John Hanley 的评论和一些谷歌搜索,我发现这个堆栈溢出 post:app.yaml file mistake : Call to undefined function curl_init() 解决了我的问题。
显然在默认情况下,cURL 扩展 Google App Engine 被禁用,因此错误消息指出 curl_init() 函数无法识别,要激活它,需要 php.ini在将文件推送到云之前,使用 "google_app_engine.enable_curl_lite = 1" 行创建并添加到包含 app.yaml 文件的文件夹中。