PHP语言:如何删除字符串中的某个字符串?

比如将 fdjborsnabcdtghrjosthabcrgrjtabc 中的 abc 都删除,然后赋给新变量。

概括起来两个方法吧。
方法一
$string = 'fdjborsnabcdtghrjosthabcrgrjtabc';
$string = preg_replace('/[abc]+/i','',$string);

方法二
把字符串转化成数组
$arr = str_split($string);
foreach( $arr as $key => $value ){
if( in_array($value,array('a','b','c')) ){
unset($arr[$key]);
}
}
$string = implode('',$arr);

强烈推荐方法一,方法二不支持字符串中有中文。追问

大神,你那个方法不是删除 “abc”,而是a、b、c都删除了,这是输出结果:
fdjborsnabcdtghrjosthabcrgrjtabc
fdjorsndtghrjosthrgrjt

追答

如果要删除abc,那就采用方法一吧,同时正则做一个更改.
方法一
$string = 'fdjborsnabcdtghrjosthabcrgrjtabc';
$string = preg_replace('/abc/i','',$string); // 这里做了更改..

方法二
也可以采用str_replace

温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-11-11
用正则表达式即可:
$string = 'fdjborsnabcdtghrjosthabcrgrjtabc';
$result = preg_replace('/abc/','',$string);
(如果不想区分大小写,将preg_replace函数中的'/abc/'修改成'/abc/i'即可)
第2个回答  2012-11-12
delete 函数 例:delete(s,i,n);
功能:删除S字符串中从第i个位置开始的n个字符
示例:设s为‘abcdefg',则执行delete(s,2,4); 后s为'afg'
对这个题而言 可以for循环 也可以用Pos 函数
Pos求小字符串在大字符串中出现的位置
第3个回答  2012-11-19
str_replace的效率比preg要高。
$code = "fdjborsnabcdtghrjosthabcrgrjtabc";
直接str_replace("abc","",$code);
ok