php使用通配符,PHP正则使用通配符(*)达到替换字符串

我对于正则,不是很熟悉,正则对字符串的处理非常的广泛,什么都可以做,有时只需要它的一点功能就可以做很多的字符串处理了,路(.*?)就是通配符的基本正则表达式,对正则我不熟悉,经常需要用类似通配符的处理字符串,所以我 写了一个可以使用通配符的简单的处理字符串替换的函数tihuan_str()

正则其他的功能实现就比较难了,路可变的数量(把字符分类,路数字,这些地方不好把握)

//写一个通配符替换的字符串的函数

//使用说明:tihuan_str($fustr,$str1,$str2)函数使用方法:$fustr---要处理的字符串,$str1---可以使用(*)通配符的要替换的字符串 , $str2-----替换为的新字符串,最后返回处理结果$fustr;

$fustr="sdfs

df";;

$str1='

';

$str2='(我被替换啦)';

function tihuan_str($fustr,$str1,$str2)

{if(empty($fustr)||empty($str1)){echo '参数12不得空字符
';return $fustr; }

$wz1=0;

$arr=explode('(*)',$str1);

$arr1=array();

$k=0;

//过滤空字符

for($i=0;$i

{if($arr[$i]!==''){$arr1[$k]=$arr[$i];$k++;}

}

$cishu=0;

while($wz1

{//单个替换的过程

$jishu=0;

for($i=0;$i

{

if(($wz=strpos($fustr,$arr1[$i],$wz1))!==false)

{ if($i==0)$ks=$wz;

if($i==count($arr1)-1)$js=$wz+strlen($arr1[$i]);

$wz1=$wz+strlen($arr1[$i]);

$jishu++;

}

else break;

}

//当符合条件时

if($jishu==count($arr1)){$cishu++;

echo '第'.$cishu.'次替换:
';

echo 'begin:'.($ks+1).' end:'.$js.'
';

$leftstr=substr($fustr,0,$ks);

$rightstr=substr($fustr,$js);

if(!$rightstr)$rightstr='';

$fustr=$leftstr.$str2.$rightstr;

$wz1=$ks+strlen($str2);

echo 'next:'.($wz1+1).'
';

echo $fustr.'
';

}

else{echo '停止
';break;}

echo '
';

}

return $fustr;

}

$str=tihuan_str($fustr,$str1,$str2);

echo '替换效果:'.$str;

?>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值