PHPのpreg_replace_callback

「括弧で括られた中のみの空白を削除する」などやりたい場面で
preg_replace_callbackはとっても便利!


いちいち関数を分けなくとも
PHP5.3以上だったら無名関数が使えるよ

$str = preg_replace_callback('/([0-4]{3})\-([0-4]{4})/su',
				function($match){
					
					//これは全体のキャプチャ
					$match[0] = trim($match[0]);
					
					//これは一番目のキャプチャ
					$match[1] = trim($match[1]);

					//これは二番目のキャプチャ
					$match[2] = trim($match[2]);

					//二番目のキャプチャが$strに格納されるよ
					return $match[2];

				
			   },$str);

class内だったらarray()に格納することで関数を呼び出すことができるよ

class hoge {
    function huga() {
        $str = preg_replace_callback('/([0-4]{3})\-([0-4]{4})/su', array($this, 'callback'), $str);
    }
    
    function callback($match) {
        return return $match[2];
    }
}