[PHP] preg_replace_callback で無名関数を使う
置き換え用のタグを連想配列($row)で置き換える例です。どちらとも同じ動きをします。
PHP5.3以降では、クロージャスコープを使ってすっきり書くことができます。
$row = array( ... );
$html = preg_replace_callback(
'//',
function ($match) {
return $row[$match[1]];
},
$html
);
PHP5.3未満では、create_function を使って力技で展開すれば実現できます。
$row = array( ... ); $seri = serialize($row); $html = preg_replace_callback( '//', create_function( '$match', '$seri = '.var_export($seri,true).';'. '$row = unserialize($seri);' . 'return $row[$match[1]];' ), $html );
0 件のコメント