解決済み

file_existsでファイル名の部分一致で検索

  • 暇なときにでも
  • 質問No.7335963
  • 閲覧数5879
  • ありがとう数0
  • 気になる数0
  • 回答数2
  • コメント数0

お礼率 20% (1/5)

PHPの勉強中なのですが、指定フォルダにあるファイルを、部分一致で存在チェックしたいのですが、file_existsでは、正規表現とかは使えないのでしょうか?
それとも、readdirでファイル一覧を取得して、そこから検索して存在チェックするのでしょうか?

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

  • 回答No.2

ベストアンサー率 54% (864/1587)

globを使ってもいいかと思います。戻り値は配列です(マッチするファイル名がなければ空の配列が返ります)。

http://php.net/manual/ja/function.glob.php
補足コメント
zinziroge

お礼率 20% (1/5)

shimix様 ありがとうございます。
globというのは知りませんでした。
シンプルでいいですね。 ワイルドカードが使えるのでとても便利そうです。
他の人にも参考になるように、私のテストしたスクリプトをご紹介しておきます。

<?php
$dir = "./jpeg/*501?.jpg";
//↑jpegフォルダの、501+1文字 という文字が含まれるjpg画像ファイルを抽出
foreach(glob($dir) as $file) //抽出したファイルを$fileという配列に格納
{
echo "filename: $file . "<br>\n";//抽出したファイル名を表示
}
?>
投稿日時 - 2012-03-01 14:20:02
感謝経済、優待交換9月20日スタート

その他の回答 (全1件)

  • 回答No.1

ベストアンサー率 51% (3827/7415)

>readdirでファイル一覧を取得

まぁそうでしょうね、そもそも完全一致じゃなければ
所在チェックの意味もあまりないと思いますが・・・

<?PHP
$d = dir("./");
$pattern="/条件/";
$flg=false;
while (false !== ($entry = $d->read())) {
if(preg_match($pattern,$entry)){
$flg=true;
break;
}
}
if($flg) echo "match!!";
else echo "unmatch!?";
?>
補足コメント
zinziroge

お礼率 20% (1/5)

yambejp様
早速の回ご答、ありがとうございました。
やはり一度配列に格納してから、preg_matchをかけるのですね。

今回の目的が、いくつかの条件で文字列を組み合わせてファイル名を構成しているので
その中の連番部分だけを抽出したかったのです。

まだまだ初心者なので、preg_matchの使い方も参考になりました。
ありがとうございました。
投稿日時 - 2012-03-01 14:25:16
AIエージェント「あい」

こんにちは。AIエージェントの「あい」です。
あなたの悩みに、OKWAVE 3,500万件のQ&Aを分析して最適な回答をご提案します。

関連するQ&A
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する

特集


より良い社会へ。感謝経済プロジェクト始動

ピックアップ

ページ先頭へ