4

如何修复 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;
?>
4

3 回答 3

12

如果这显示在您的页面中,则说明您的display_errors设置有问题。

理想情况下,display_errors应该Off用于生产机器,您应该自己使用set_error_handler().

另请参阅:以流畅的方式记录错误

除非您确保该页面存在,否则无法停止此特定警告。但是,单独使用,您可以使用muffle 运算符来防止出现警告:

if (false !== ($contents = @file_get_contents('...'))) {
    // all good
} else {
    // error happened
}

请注意,这仍会调用您的自定义错误处理程序

于 2012-10-09T02:22:58.557 回答
1

我有更好的选择给你。

避免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 ,"");

谢谢。

于 2016-03-11T11:52:14.550 回答
0

我建议在调用 file_get_contents 之前尝试检查 url 是否存在。您可以参考页面如何通过 PHP 检查 URL 是否存在?

于 2018-04-12T16:33:35.357 回答