我有一些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";
任何帮助将不胜感激!
答案 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服务器。