我对模式和preg_replace没有多少经验所以我知道我做错了。但我不确定正确的语法应该是什么。
在这种情况下,我正在尝试将[/ b]转换为表单提交。
这是我最好的尝试,显然是不正确的:
$patterns = array();
$patterns[0] = '/[b]/';
$patterns[1] = '/[/b]/';
$patterns[2] = '/[i]/';
$patterns[3] = '/[/i]/';
$patterns[4] = '/[u]/';
$patterns[5] = '/[/u]/';
$replace = array();
$replace[0] = '/<b>/';
$replace[1] = '/</b>/';
$replace[2] = '/<i>/';
$replace[3] = '/</i>/';
$replace[4] = '/<u>/';
$replace[5] = '/</u>/';
$new = preg_replace($patterns, $replace, $string);
答案 0 :(得分:3)
可以使用str_replace()
$search = array('[b]', '[/b]', '[i]', '[/i]');
$replace = array('<b>', '</b>', '<i>', '</i>');
str_replace($search, $replace, $string );
答案 1 :(得分:1)
[
和]
是正则表达式中的特殊字符,因此需要它们
逃脱。 i
修饰符作为正则表达式,str_ireplace
应使用str_replace
代替$patterns = array();
$patterns[0] = '/\[b\]/';
$patterns[1] = '/\[\/b\]/';
$patterns[2] = '/\[i\]/';
$patterns[3] = '/\[\/i\]/';
$patterns[4] = '/\[u\]/';
$patterns[5] = '/\[\/u\]/';
$replace = array();
$replace[0] = '<b>';
$replace[1] = '</b>';
$replace[2] = '<i>';
$replace[3] = '</i>';
$replace[4] = '<u>';
$replace[5] = '</u>';
$new = preg_replace($patterns, $replace, $string);
。示例1:
$patterns = array();
$patterns[0] = '/\[(\/?)b\]/';
$patterns[1] = '/\[(\/?)i\]/';
$patterns[2] = '/\[(\/?)u\]/';
$replace = array();
$replace[0] = '<$1b>';
$replace[1] = '<$1i>';
$replace[2] = '<$1u>';
$new = preg_replace($patterns, $replace, $string);
如果您希望使用正则表达式,请使用正则表达式功能。
$patterns = array();
$patterns[0] = '[b]';
$patterns[1] = '[/b]';
$patterns[2] = '[i]';
$patterns[3] = '[/i]';
$patterns[4] = '[u]';
$patterns[5] = '[/u]';
$replace = array();
$replace[0] = '<b>';
$replace[1] = '</b>';
$replace[2] = '<i>';
$replace[3] = '</i>';
$replace[4] = '<u>';
$replace[5] = '</u>';
$new = str_replace($patterns, $replace, $string);
或使用str_replace ...
$new = preg_replace('~\[(/?)(b|i|u)\]~', '<$1$2>', $string);
更好的正则表达式......
CRON JOBS