如何修复php警告:file_get_contents?
Warning: file_get_contents(http://192.168.1.254:9999/api/p/internal/ucenter/login?loginName=test102&password=111111) [function.file-get-contents]: failed to open stream: HTTP request failed! HTTP/1.1 400 Bad Request in /Applications/XAMPP/xamppfiles/htdocs/PHP_test/index.php on line 49
以下是与$ files相关的代码:
<?php
$loginNames="test102";
$passwords="111111";
$apiUrl = "http://192.168.1.254:9999/api/p/internal/ucenter/login?loginName=".$loginNames."&password=".$passwords;
$callback = file_get_contents($apiUrl);
print_r($callback);
//echo $callback;
?>
答案 0 :(得分:11)
如果您的页面显示此信息,则display_errors
设置出现问题。
理想情况下,display_errors
对于生产计算机应为Off
,您应该使用set_error_handler()
自行处理错误。
另请参阅:Error logging, in a smooth way
除非确保页面存在,否则无法停止此特定警告。但是,隔离使用,您可以使用muffle operator来阻止警告显示:
if (false !== ($contents = @file_get_contents('...'))) {
// all good
} else {
// error happened
}
请注意,这仍会调用您的自定义错误处理程序
答案 1 :(得分:0)
我有更好的选择。
避免file_get_contents
,用户cURL
。
让我举个例子:
$url = 'http://www.yoururl.com';
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_HEADER, false);
$data = curl_exec($curl);
curl_close($curl);
注意:您是否觉得编码问题会添加:curl_setopt($curl, CURLOPT_ENCODING ,"");
感谢。
答案 2 :(得分:0)
我建议在调用file_get_contents之前尝试检查url是否存在。 您可以参考页面How can I check if a URL exists via PHP?