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
PHP:htmlspecialchars関数を簡単に使いやすくする

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

no image
WordPress:特定の記事(エントリ)でPHPを実行したい

このブログでそんな事がしたくなって、調べてみました。 エントリ中でPHPコードを ...

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

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

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

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

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

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

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

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

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

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

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 ...

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:/ ...