KAKIMASSE

ネットで見つけた面白い記事や、役立つのではと感じたネタなどを書いています。

PHP:glob関数で複数パターンのマッチングを行ないたい

      2011/01/12

何かと便利なPHPのglob関数。
よく

<?php
$files = glob('*.txt');
?>

なんてマッチングは使ってましたが、
例えば *.txt と *.php と test*.jpg
にマッチするようにはどうしたら良いの?
と思って調べてみました。
そしたら第二引数にGLOB_BRACEオプションを指定することで
複数のパターンマッチングを使えるとの事。
さっきの例なら

<?php
$files = glob('{*.txt,*.php,test*.jpg}' , GLOB_BRACE );
?>

って感じ。
これは便利。
っと思ってたらもう一個問題を発見。
マッチパターン内に変数が使えないよねーと。
で、はずかしながら先人の知恵を借りるべく、ぐぐってみると
glob()に GLOB_BRACE + GLOB_NOSORT フラグをつけて、優先順位をつけてファイルパスを取得 - yuhei.kagaya
ありました。

<?php
//先にマッチングパターン用意
$pattern="{".$str."*.txt,".$str."_*.php,".$str."test*.jpg}";
//条件にマッチするファイル取得
$files = glob( $pattern , GLOB_BRACE );
?>

って感じです。
先に$patternでパターンを用意するのがミソですね。
こんな事も分からなかった自分が恥ずかしいです。
でもまた一つ、勉強になりました。

 - PHP

SPONSORD LINKS

スポンサーリンク

スポンサーリンク

Message

メールアドレスが公開されることはありません。

  関連記事

no image
Qdmailを使ってiphoneにデコメール(デコメ、HTMLメール)を送るとテキストメールで届いてしまう不具合への対応方法

全キャリアへデコメールの作成が行えることで有名なQdmail。 http://h ...

no image
PHP:セッションを使っていて「Web ページの有効期限が切れています」となる時の対策方法

HTTPセッション管理を行うページを作って、フォームで送信した後に ブラウザ(I ...

no image
PHP:配列の文字コードをmb_convert_encodingを使わずに変換するには?

PHPで配列に格納されている値に対して mb_convert_encodingで ...

no image
PHP:htmlspecialchars関数を簡単に使いやすくする

文字列中の文字でHTMLエンティティに変換が必要な文字があった場合に エンティテ ...

.htmlファイルでPHPを動かす方法(UTF-8の文字化け対策方法もあり)

photo credit: DaveBleasdale via photopin ...

no image
PHP:phpでgzip (.gz) ファイルを作成するには?

PHPマニュアルにありました。 http://php.net/manual/ja ...

PHPで Warning: strtotime(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'Asia/Tokyo' for 'JST/9.0/no DST' instead in /path/to/file on line *** のエラーの対応方法

centos6、PHP5.3のサーバで Warning: strtotime() ...

no image
PHP:文字列の比較で == は絶対に使っちゃだめ。

マジですか? しかもかなり前のエントリー(汗)。 PHPでご飯食べてる先輩もフツ ...

no image
imagickのインストールでFatal error: Allowed memory size of 8388608 bytes exhausted (tried to allocate 92160 bytes) in /usr/share/pear/PEAR/PackageFile/v2/Validator.php on line 912となる場合の対処方法

Centos5.5(64bit)のサーバにImageMagickをインストールし ...

no image
PHP:PHPで文字コードUFT-8を出力するページでブラウザのエンコードがシフトJISになってしまう時の対応方法

ファイルはUTF-8で書かれてて、 htmlソースののmetaタグも <m ...