1

<?=[something]?>次のようすべての PHP 行を置き換える必要があり<?php echo [something]; ?>ますおよび<ですが、隣接することはできません。私は正規表現にちょっと慣れていないので、この非常に厄介な式を書き、それを に置き換えました。\<\?\=([a-zA-Z0-9()=#<>\[\]\\/'"._$\?:, \-]*)([;]*)\?\><?php echo \1; ?>

動作しますが、次のようなものと一致しません:

<?=[something]?><tr><td><?=[something]?>すべてが1行になったとき。ライン全体にマッチします。

どんな助けでも大歓迎です。

4

1 に答える 1

1

このコードは動作するはずです:

$s = '<?=[something]?><tr><td><?=[something]?>';
$s = preg_replace('/(<\?)=\s*(\[[^]]*\])\s*(\?>)/', '$1php echo $2; $3', $s);
var_dump($s);

出力:

string(56) "<?php echo [something]; ?><tr><td><?php echo [something]; ?>"
于 2013-08-08T10:07:02.313 に答える