【解決方法】file_get_contents(url): ストリームを開けませんでした


こんにちは、みんな;

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;
}

コメント

タイトルとURLをコピーしました