- 締切済み
phpでファイルの読み込みができません
phpを使って掲示板のコードを書いたのですが、ファイルの読み込みができないとエラーがでます。 なぜ読み込みが出来ないのでしょうか。サーバにアップした際に、権限の変更などが必要なのでしょうか。 以下が問題のコードの部分になります。 function load_data( $file_name, &$data_array ){ global $sys_mes; if( is_readable ( $file_name ) ){ $data_array = @file( $file_name ); return true; }else{ $sys_mes = "ErrorFile open for load<br> データファイルが開けませんでした<br>\n"; return false; } } このコードを実行するとelse文を実行します。なぜでしょうか
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- agunuz
- ベストアンサー率65% (288/438)
>ファイルのパーミションを変更する場合、どうすればよいのでしょうか? 質問者さんがお使いのサーバで「phpスクリプトから読める」パーミッションが必要です。サーバの設定依存なので、詳しくはサーバ管理者にお尋ねください。
- agunuz
- ベストアンサー率65% (288/438)
is_readable ( $file_name ) がfalseになっているのですから、まずはis_fileでどうなるかを確認してください。is_fileでもfalseになるんだったら、「ファイル名が間違っている」。is_fileでOK(でも$data_arrayがfalseになる)なら、「ファイルのパーミッションがおかしい」ことになります。 まとめて書くなら、こう書いた方がいいんじゃないですかね。もちろんdieで止めたくないなら例外を投げてもいいです。 function load_data($file_name) { if(is_readable ( $file_name)) { return file($file_name); }else{ if (!is_file($file_name)) { die('<span style="color:red">データファイル' . $file_name . 'が存在しません</span>'); } die('<span style="color:red">データファイル' . $file_name . ''が開けません</span>'); return false; } } 使う側は、$data = load_data(ファイル名); で。
補足
ファイルのパーミションを変更する場合、どうすればよいのでしょうか?