[ad_1]
大家好;
我有一个从 URL 获取内容的 php 文件,但收到失败消息
Warning: file_get_contents(http://xxxxxx): failed to open stream: HTTP request failed! in xxxx.php on line xx
我尝试了很多在线解决方案,但仍然不起作用。 这是代码
$cryptpass = rawurlencode(crypt($pc['pcpassword'])); $url = "http://" . $pc['pcname']."/Reports/ReportList.php?&username={$pc['pcusername']}&cryptpass=$cryptpass&noredir=1"; $parsed_list = read_general_list($url, false);
C#
function read_general_list($url, $make_assoc = false)
{
$compressed_data = file_get_contents($url);
}
$compressed_data 始终为 null 并且会引发错误:
警告:file_get_contents(http://xxxxxx):无法打开流:HTTP 请求失败! 在 xxxx.php 的第 xx 行
请问有什么建议吗?
解决方案1
正如错误消息所示,无法打开请求的流(URL)。 造成这种情况的可能原因有很多:
1. 基本 URL 错误。 $pc['pcname']
2. 用户名和/或密码错误
3. 用户名/密码没有服务器权限
4.您的系统无法访问服务器(防火墙、PHP 权限…)
4….
我会使用以下策略来调试:
1. 转储 $url 并将其记下来。
2. 使用带有调试工具的浏览器(例如Firefox/Firebug)并尝试访问该URL。
3. 查看返回的标头,了解服务器报告的错误(如果有)。
4. 想想为什么会返回这个错误…
干杯,
彼得
如果这回答了您的问题,请投票并将其标记为已接受。
解决方案2
抱歉,我从未完全更新过这个问题。 可能是如果有人仍在寻找答案。
这对我有用。 这是 File_get_contents 的等效函数,但可以处理大量数据。 我在网上找到了这个解决方案。
function file_get_contents_curl($url) { $ch = curl_init(); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); //Set curl to return the data instead of printing it to the browser. curl_setopt($ch, CURLOPT_URL, $url); $data = curl_exec($ch); curl_close($ch); return $data; }
[ad_2]
コメント