Код (Text): $source = preg_replace("#<iframe#i", "<iframe", $source); $source = preg_replace("#<script#i", "<script", $source); $source = preg_replace("#\[(left|right|center)\](.+?)\[/\\1\]#is", "<div align=\"\\1\">\\2</div>", $source); $source = preg_replace( "#\[quote\](.+?)\[/quote\]#is", "<blockquote>\\1</blockquote>", $source ); if(stripos($source, "[video]") !== false || stripos($source, "[photo]") !== false || stripos($source, "[phl]") !== false || stripos($source, "[link]") !== false || stripos($source, "[color]") !== false){ $source = preg_replace("#\\[video\\](.*?)\\[/video\\]#ies", "\$this->BBvideo('\\1', '{$preview}')", $source); $source = preg_replace("#\\[photo\\](.*?)\\[/photo\\]#ies", "\$this->BBphoto('\\1', '{$preview}')", $source); $source = preg_replace("#\\[phl\\](.*?)\\[/phl\\]#ies", "\$this->BBphl('\\1', '{$preview}')", $source); $source = preg_replace("#\\[link\\](.*?)\\[/link\\]#ies", "\$this->BBlink('\\1')", $source); $source = preg_replace("#\\[color\\](.*?)\\[/color\\]#ies", "\$this->BBcolor('\\1')", $source); } return $source; } $source = preg_replace("#<div align=\"(left|right|center)\">(.+?)</div>#is", "[\\1]\\2[/\\1]", $source); $source = preg_replace( "#\[quote\](.+?)\[/quote\]#is", "<blockquote>\\1</blockquote>", $source ); $source = preg_replace( "#<blockquote>(.+?)</blockquote>#is", "[quote]\\1[/quote]", $source ); $source = preg_replace("#\\<!--video:(.*?)\\<!--/video-->#ies", "\$this->BBdecodeVideo('\\1')", $source); $source = preg_replace("#\\<!--photo:(.*?)\\<!--/photo-->#ies", "\$this->BBdecodePhoto('\\1')", $source); $source = preg_replace("#\\<!--phl:(.*?)\\<!--/phl-->#ies", "\$this->BBdecodePhl('\\1')", $source); $source = preg_replace("#\\<!--link:(.*?)\\<!--/link-->#ies", "\$this->BBdecodeLink('\\1')", $source); $source = preg_replace("#\\<!--color:(.*?)\\<!--/color-->#ies", "\$this->BBdecodeColor('\\1')", $source); }
Меняешь только те preg_replace(), что с модификатором /е и $this-> в строке замены. PHP: $source = preg_replace("#\\[video\\](.*?)\\[/video\\]#ies", "\$this->BBvideo('\\1', '{$preview}')", $source); PHP: $source = preg_replace_callback( "#\\[video\\](.*?)\\[/video\\]#is", function ($m) use ($preview) { return $this->BBvideo($m[1], $preview); }, $source );