(code] ほげほげ [/code) の中の php タグにも br タグが入るようになったので
どうしようかと迷ってたが
preg_replace_callback 関数を使えばいい!
ということに気づいた。
初めて使ったのでめちゃくちゃ難しかったが使い道をメモ。
$text = 'ほげらんこ<pre>いいですわ。<br />ほんっとに。<br />遊園地<br><br /></pre>いいかんじ。<br>めっちゃ改行も。いい感じ。<br /><br>';
の文字列の中から pre タグに囲まれた brタグのみ、全て削除したい場合
<?
$text = 'ほげらんこ<pre>いいですわ。<br />ほんっとに。<br />遊園地<br><br /></pre>いいかんじ。<br>めっちゃ改行も。いい感じ。<br /><br>';
// コールバック関数
function delbr($matches) {
foreach($matches as $key => $v){
$matches[$key] = preg_replace('/<br.*?>/','',$v);
}
return $matches[0];
// return '[ ここがマッチ ]';
}
$text = preg_replace_callback("/<pre.*?<\/pre>/is","delbr",$text);
echo $text;
?>
って感じでいけるみたい。 delbr の内容がいまいちわからんかったら
return ['ここがマッチ'];
ってやってみるとわかりやすい。



