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);
としてみるとエラーは出なくなった。
とりあえずはこれで良しとしよう。^^;
コメント