

いつもお世話になっております。
■環境■
PHP5 Windows
■状況■
フォルダ内にtextファイルが20~45個入っております(個数は状況によって変わります)。
■目的■
フォルダのtextファイルの中身を参照し、各textファイルに必ず含まれる数字を取り出す。でございます。
■方法■
(1)フォルダにあるファイル名を取りだす
(2)fopenで読み込み(r)で全部を見、数字を別ファイルに書き込む
と考えたのですが、(1)で.、..というよくわからないファイルも一緒に出てきてしまったので、file_existsでファイルが存在するか確認してから(2)に移ろうとお思いました。
が、ファイル名は全部ないといわれてしまうのです。
しかしfile_exists($filename)の$filenameを表示させ、ブラウザにこぴぺするとtextデータは出てきます。
以下プログラムの一部です
※$cは(1)で得たフォルダ内にあるファイル名をループでまわしている値です
for($b=0;$b<$a;$b++){
$filename="C:/Inetpub/wwwroot/php/kore/1/".$c;
if (file_exists($filename)) {
print "あるよ<BR>";
} else {
print "ないよ<BR>";
}
}
結果は(一部です)
C:/Inetpub/wwwroot/php/kore/1/.text⇒ないよ
C:/Inetpub/wwwroot/php/kore/1/..text⇒ないよ
C:/Inetpub/wwwroot/php/kore/1/0155442A5.txt⇒ないよ
C:/Inetpub/wwwroot/php/kore/1/01762602A.txt⇒ないよ
です。
上記の
C:/Inetpub/wwwroot/php/kore/1/01762602A.txt
C:/Inetpub/wwwroot/php/kore/1/0155442A5.txt
は確実に存在しております。
どこがおかしいのか、ご教授いただければ幸いです
よろしくお願いいたします
No.3ベストアンサー
- 回答日時:
直接の回答ではありませんが、「.」や「..」という名前が出て来るということは、scandirやopendirしてreaddirでファイル名の一覧を取得しているということですよね。
一覧すべてを取得するのではなく、目的とするファイルのみ一覧で取得できるglobを使う方が便利ではないかと思います。たとえば glob("*.txt") を実行すれば、拡張子がtxtのファイルの一覧を返してくれます。
file_existsがtrueで返らない理由については、他の方もおっしゃっているとおり、まず渡しているファイル名が本当に思っているものなのかどうかを確認してみた方が良いと思います。ありそうなのは、$c にディレクトリ名の一部が入っている、とか。
ご回答ありがとうございます!
glob関数は知りませんでした。
ありがとうございます。
早速使ってみましたところ、見事にtxtのみ採取でき驚きです!
さらにglobで得たファイル名をそのままfile_existsに入れてみると
「あるよ」になりました!!!!
ありがとうございます!!
無事に解決になりました!!!
No.4
- 回答日時:
inetpubからではなく、"
http://localhost/php/kore/1/0155442A5.txt"がfile_existsか?と聞いても結果は同じですか?
もしくは同様にarray = file([URLでのファイル名]);
で聞いても値は入ってますか?
(ブラウザでは開くとお話されてますので)
URLで直接聞いて値が有効であり、絶対パスで聞いて値が有効でない場合は、指定がおかしいのではと思われます。
また、実行時パスを事前に調べておいて、そこからの相対パスで指定したときにも同じ現象になるのか調べてみてもいいんじゃないですか?
ケアレスっぽい気がします(^^;
回答ありがとうございます!!
なるほどです。
相対パスの着眼点はありませんでした。。。
勉強になります!
ありがとうございます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
.phpファイルが、表示されない
-
PHPファイルの中身が見られるこ...
-
session_start()でwarningが表...
-
URLが.PHPってどういう...
-
phpinfoの内容が見れない
-
SendMailがエラーを返さない
-
CSV出力にHTMLが入ってしまう
-
PHPからメールを送る@さくらイ...
-
centos6のlogにscript not foun...
-
ob_end_clean と ob_clean の違...
-
php.ini を設定を変更すると再...
-
CFileDialogの最初のディレクト...
-
IIS+PHP スクリプトから仮想デ...
-
glide3x.dllがないと表示されま...
-
PHPのif文でその処理を途中で抜...
-
PHP PDOライブラリが読み込まれ...
-
include先でのinclude元の変数...
-
try~catch構文は、どういうメ...
-
FTPコマンドでディレクトリごと...
-
Notice: Undefined offset: 1を...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【file_exists】ファイルが存在...
-
.phpと.incファイルの違いはな...
-
phpinfoの内容が見れない
-
.phpファイルが、表示されない
-
コメントフォームの設定方法
-
URLが.PHPってどういう...
-
ユーザー認証でユーザーID毎に...
-
PHPのインストールで
-
アクセスされたくないファイル...
-
cronで動かすと保存されなくなる
-
PHPを使ったリダイレクトを教え...
-
PHPをインストールしてみた...
-
PHPの戻り値をWINDOWSバッチフ...
-
PHPファイルの中身が見られるこ...
-
PHPを使ってのサーバ上ファイル...
-
コマンドプロンプト エラー
-
PHP で各種設定ファイルをイン...
-
[PHP+XML]PHPで動的に出力す...
-
Fatal error: Class 'Config' n...
-
1つのファイルにデザイン(HTML...
おすすめ情報