问一个PHP问题

来源:百度知道 编辑:UC知道 时间:2024/05/14 08:49:01
有一段字符串
$str = "PHP好不好我不[up]1[/up]想多说,在北京上海做PHP的拿10万年薪的也有,不过光学PHP也是不行的,因为做P[u]5[/u]HP要涉及到很多......";

我想用一个函数把上面这段字符串的“[up]”和“[/up]”都替换成“[u_f]”和“[/u_f]”,怎么写呢?
我这样写
function f($str)
{
$str = ereg_replace("[up]", "[u_f]", $str);
$str = ereg_replace("[/up]", "[/u_f]", $str);
return $str;
}
似乎不行,请高手赐教,给出代码,感谢。
$str 改为

$str = "PHP好不好我不[up]1[/up]想多说,在北京上海做PHP的拿10万年薪的也有,不过光学PHP也是不行的,因为做P[u]5[/u]HP要涉及up到很多......";

注意,我想要替换的是[up]不是up

function f($str)
{
$str = preg_replace("/\[up\]/", "[u_f]", $str);
$str = preg_replace("/\[\/up\]/", "[/u_f]", $str);
return $str;
}

preg_replace 正则表达式需要定界符。正则表达式中[]表示匹配括号中的一个字符,所以需要反斜线转义,对定界符 / 也需要转义

用 preg_replace

老大,你怎么搞这么麻烦呢;
一句话啊:$str = ereg_replace("up","u_f",$str);