こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

php file() で外部サーバのファイルを読もうとするとWarni

php file() で外部サーバのファイルを読もうとするとWarning: file(http://xyz.・・・エラーとなる。
いつもお世話になります。
phpで
$csvscj='http://xyz.・・・';  //参照テキストファイル名
$FielList = implode('', file($csvscj,FILE_SKIP_EMPTY_LINES));
とすると、

Warning: file(http://xyz.・・・
というエラーが発生するようになりました。
file()で読み込むファイルがローカルPCの内部だとこのようなエラーは発生しません。

phpは、xampを個人のPCへインストールして使用しています。

この、phpのスクリプトをホームページを公開しているサーバーへアップして実行するとエラーは発生しません。
また、xampがインストールしてある別のPCでこのスクリプトを実行してもエラーは発生しません。

つまり、ある特定の機種のみで外部ファイルを読み込もうとするとエラーが発生するようになってしまいました。
「なってしまいました。」というのは今までこのようなことはありませんでした。
エラーが出るようになった機種を1ヶ月程使わないでいたらエラーが出るようになりました。

このエラーが出るようになったPCのどこが変わったのかわかりません。
解決の糸口となるようなことでも構いません。
おわかりになる方みえましたらよろしくお願いいたします。

投稿日時 - 2010-09-09 11:40:38

QNo.6169565

困ってます

質問者が選んだベストアンサー

XAMPってことはWindows。
Windowsのファイヤーウォールなり、セキュリティソフトなりが、外部へのアクセスを遮断していて読み込めない可能性は?

投稿日時 - 2010-09-09 20:58:40

補足

kalzeさん、お早うございます。
おっしゃるとおり、Windowsです。
>Windowsのファイヤーウォールなり、セキュリティソフトなりが、外部へのアクセスを遮断していて
この辺りのことも疑ってみまして、調べたのですが良くわかりませんでした。
でも、この線が一番疑わしいことになるのでしょうか。
外部への参照ができない訳ですからルーターの設定なんてことも関係するのでしょうか。
phpがfile()で参照するときある特定のポートを使っていると言うようなことがあるのでしょうか。

投稿日時 - 2010-09-10 05:42:56

ANo.3

このQ&Aは役に立ちましたか?

5人が「このQ&Aが役に立った」と投票しています

回答(4)

ANo.4

エラー内容が文字化けしているということですから、
file()で発生するwarningの原因を、何が問題かわからないまま手探りで
あれこれやるより、さきにエラー内容の文字化けを直して、エラーメッセージを
確認した方が良いと思います。
ブラウザのエンコーディング設定を変更するだけで文字化け解決しませんか?

また、ローカルで正常に動作するPCのhttpd.conf、php.iniとの比較をしてみるなど。

投稿日時 - 2010-09-10 12:34:38

補足

naktakさん、貴重なレスをありがとうございます。
>ブラウザのエンコーディング設定を変更するだけで文字化け解決しませんか?
そうですよね。試してみる必要がありました。
しかし、本日帰宅しまして、このトラブルに悩んでいるPCは職場のものでして、そのPCがありません。
土日と、職場へ行くことはありません。月曜日には是非ともこの辺りも調べてみます。
どうも、貴重なレスをありがとうございました。

投稿日時 - 2010-09-10 18:48:27

ANo.2

エラー文を読むと解決の糸口になるかも知れません
Warning:の後にはなんと書いてあったのでしょうか

投稿日時 - 2010-09-09 13:58:46

補足

php504さん、今晩は。
レスありがとうございます。
エラーメッセージですが、読み込むことのできないファイルパスの表示の次は文字化けしていまして、読むことができません。
ファイルのパス名までは、半角文字なので読むことができます。
初めにこのことも記載しておけば良かったのですが、どうもすみません。

投稿日時 - 2010-09-09 19:04:26

ANo.1

PHPの設定で以下を確認してみましょう。

allow_url_fopen = On ← OffだとURL指定のファイルはオープンできません

あとはっきりとは覚えていませんが、
safe_mode が On だと、ダメかもしれません。

http://jp2.php.net/manual/ja/function.file.php
http://jp2.php.net/manual/ja/filesystem.configuration.php#ini.allow-url-fopen

投稿日時 - 2010-09-09 11:53:09

お礼

naktakさん今日は。
早速お返事ありがとうございます。
phpinfo()で早速調べてみました。

Directive      Local Value    Master Value
allow_url_fopen On On
safe_mode Off Off

でした。
と、いうことで原因が異なるような気がしますが。
どうも貴重な情報をありがとうございました。

投稿日時 - 2010-09-09 13:57:33