file_get_html()无法在Google App Engine中使用

时间:2017-08-24 08:58:02

标签: php google-app-engine google-cloud-platform

我有一些PHP代码可以在本地和网络中完美运行(使用非SSL托管)。我使用file_get_html(url)获取文件内容,一切正常。

当我尝试在Google App Engine中运行此代码时出现问题。函数file_get_html()不起作用。

以下代码在 BEGIN END 之间不显示任何内容:

<?php
header("Access-Control-Allow-Origin: *");

include './simple_html_dom.php';

$sitioweb = file_get_html("http://www.bolsamadrid.es/esp/aspx/Mercados/Precios.aspx?indice=ESI100000000");

echo "BEGIN<hr>";
echo $sitioweb;
echo "<hr>END";

任何帮助将不胜感激!

2 个答案:

答案 0 :(得分:0)

最后我找到了解决方案。我使用curl代替file_get_html

在Google App Engine中对我不起作用的代码:

$sitioweb = file_get_html("http://www.bolsamadrid.es/esp/aspx/Mercados/Precios.aspx?indice=ESI100000000");

适用于Google App Engine的代码:

$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, 'http://www.bolsamadrid.es/esp/aspx/Mercados/Precios.aspx?indice=ESI100000000');
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 10);
$str = curl_exec($curl);
curl_close($curl);

$sitioweb = str_get_html($str);

它有点冗长但有效: - )

答案 1 :(得分:0)

必须安装PHP cURL才能使其正常工作:

sudo apt-get install curl

然后重新启动apache服务器。