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_errorsOff、実稼働マシン用であり、 を使用して自分でエラーを処理する必要がありますset_error_handler()

参照:スムーズな方法でのエラー ログ

この特定の警告は、ページが存在することを確認しない限り停止できません。ただし、単独で使用すると、マッフル演算子を使用して警告が表示されないようにすることができます。

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 に答える