php file_get_contents で  failed to open stream でエラーになる件

file_get_contents で  failed to open stream でエラーになる件のメモ

phpでURLを保存した外部ファイルよりURLを読み込んでソースを取得するプログラムにて、
実在するURLなのにエラーが出てしまう。

Warning: file_get_contents() [function.file-get-contents]: php_network_getaddresses: getaddrinfo failed: Name or service not known in XXXXXXXXXXXXXXXXXXXXXXXXXXXXX  on line XX

Warning: file_get_contents(http://antenna.infomixer.net ) [function.file-get-contents]: failed to open stream: php_network_getaddresses: getaddrinfo failed: Name or service not known in XXXXXXXXXXXXXXXXXXXXXXXXXXXXX on line XX

プログラムは、
$handle = fopen(dirname(__FILE__).”/inputdata.txt”, “r”);
if ($handle) {
    while (($buffer = fgets($handle, 4096)) !== false) {
        $source=file_get_contents(“{$buffer}”);
                echo $source;
    }
    if (!feof($handle)) {
        echo “Error: unexpected fgets() fail\n”;
    }
    fclose($handle);
}
こんな感じだ。
直接URLを記述するとなぜだエラーが出ない。
なんでだ?ってことになりしばし悩むが、よーくみるとURLの後ろに半角スペースが!。

どうも$bufferに読み込む際に入ってしまうようだ。
だとするとスペースではなく、LFなのかなぁ?
とりあえずtrimしてみる

        $source=file_get_contents(“{$buffer}”);
の直前に
        $buffer=trim($buffer);
としてみるとエラーは出なくなった。
とりあえずはこれで良しとしよう。^^;

シェアする

フォローする