$str = preg_replace('/"((?:""|[^"])*?)"/e', '"\\"".str_replace(";"," ","\\1")."\\""', $data);
/e
, который вы используете. В вашем примере, если я правильно понял, должно быть так:$str = preg_replace_callback(
'/"((?:""|[^"])*?)"',
function ($m) {
return '\\"'.str_replace(';',' ',$m[1]).'\\"';
},
$data
);
$text = preg_replace_callback('#\[url\]([\r\n]*)(http://|ftp://|https://|ftps://)([^\s\'\"]*?)([\r\n]*)\[/url\]#sie', "'<a href=\'".$pathto."'.base64_encode('\\2\\3').'\' rel=\'nofollow\' target=\'_blank\' title=\'\\2\\3\'>'.trimlink('\\2\\3', 20).(strlen('\\2\\3')>30?substr('\\2\\3', strlen('\\2\\3')-10, strlen('\\2\\3')):'').'</a>'", $text);