
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
XAMPってことはWindows。
Windowsのファイヤーウォールなり、セキュリティソフトなりが、外部へのアクセスを遮断していて読み込めない可能性は?
投稿日時 - 2010-09-09 20:58:40
kalzeさん、お早うございます。
おっしゃるとおり、Windowsです。
>Windowsのファイヤーウォールなり、セキュリティソフトなりが、外部へのアクセスを遮断していて
この辺りのことも疑ってみまして、調べたのですが良くわかりませんでした。
でも、この線が一番疑わしいことになるのでしょうか。
外部への参照ができない訳ですからルーターの設定なんてことも関係するのでしょうか。
phpがfile()で参照するときある特定のポートを使っていると言うようなことがあるのでしょうか。
投稿日時 - 2010-09-10 05:42:56
このQ&Aは役に立ちましたか?
5人が「このQ&Aが役に立った」と投票しています
回答(4)
エラー内容が文字化けしているということですから、
file()で発生するwarningの原因を、何が問題かわからないまま手探りで
あれこれやるより、さきにエラー内容の文字化けを直して、エラーメッセージを
確認した方が良いと思います。
ブラウザのエンコーディング設定を変更するだけで文字化け解決しませんか?
また、ローカルで正常に動作するPCのhttpd.conf、php.iniとの比較をしてみるなど。
投稿日時 - 2010-09-10 12:34:38
naktakさん、貴重なレスをありがとうございます。
>ブラウザのエンコーディング設定を変更するだけで文字化け解決しませんか?
そうですよね。試してみる必要がありました。
しかし、本日帰宅しまして、このトラブルに悩んでいるPCは職場のものでして、そのPCがありません。
土日と、職場へ行くことはありません。月曜日には是非ともこの辺りも調べてみます。
どうも、貴重なレスをありがとうございました。
投稿日時 - 2010-09-10 18:48:27
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