$ string = preg_replace(“#[name =([a-zA-Z0-9 .-] +)*]#”,''。“$ 1”,$ string );str_replace在标签名称属性中带连字符的空格
脚本这部分不工作:
str_replace(' ', '-', "$1")
我需要 “与” 来代替 “ - ”, 我也尝试preg_replace
主要preg_replace
内,str_ireplace
也
但这仍然不起作用
$ string = preg_replace(“#[name =([a-zA-Z0-9 .-] +)*]#”,''。“$ 1”,$ string );str_replace在标签名称属性中带连字符的空格
脚本这部分不工作:
str_replace(' ', '-', "$1")
我需要 “与” 来代替 “ - ”, 我也尝试preg_replace
主要preg_replace
内,str_ireplace
也
但这仍然不起作用
替换是预先评估而不是每次更换。通过使用preg_replace_callback
$string = preg_replace("#\[name=([a-zA-Z0-9 .-]+)*]#e", '"<td><a href=\"$front_page/".str_replace(" ", "-", "$1")."\">$1</a></td>"', $string);
或者:但是你可以通过使用e
modifier in your regular expression这样做
function callbackFunction($match) {
global $front_page;
return '<td><a href="'.$front_page.'/'.str_replace(" ", "-", $match[1]).'">'.$match[1].'</a></td>';
}
$string = preg_replace_callback("#\[name=([a-zA-Z0-9 .-]+)*]#", 'callbackFunction', $string);
我想你将不得不做的两个步骤,因为$1
不能str_replace()
使用。 $1
并不真正作为变量存在,它只是替换字符串中的占位符。