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:au携帯のデバイスIDと機種名称(モデル名)のリストを配列で作ってみました

ケータイサイトネタです。 PHPでPEARのライブラリNet_UserAgent ...

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

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

PHPで Fatal error: Call to undefined function mcrypt_module_open() in /path/to/file on line *** とエラーが表示される場合の対処方法

centos6、php5.3の環境でmcrypt_module_open()を使 ...

no image
PHP:今週月曜00:00:00のタイムスタンプを取得したい

※2011/4/23 追記 コメントにて一行で解決する方法を教えて頂きました。 ...

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

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

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
phpmyadminにアクセスするとPHP Parse error: parse error, unexpected T_STRING, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in /PATH TO PHPMYADMIN/libraries/Error_Handler.class.php on line 25 とエラーになる

久しぶりにサーバネタ。 phpmyadminをインストールしようと http:/ ...

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:MYSQLデータベースに携帯の絵文字をINSERTすると???と文字化けする対応

更新しなさ過ぎでこのままじゃ確実に KAKIMASSEN になっちゃうよねーww ...