phpsubstrreplace
‘壹’ php大神路过留句代码,谢谢了. 循环查找替换字符串。
$string="第N个XXXXXX第N个XXXXXX第N个XXXXXX第N个XXXXXX第N个XXXXXX第N个XXXXXX第N个XXXXXX第N个XXXXXX第N个XXXXXX第N个XXXXXX";
$search_str_number=preg_match_all("/第N个/",$string);//搜索有几个
$GLOBALS['number']=1;
//替换函数
$result=preg_replace_callback("/第N个/",function(){
return"第".$GLOBALS['number']++."个";
},$string);
‘贰’ php 如何将一串字符插入到另一串字符串的指定位置
以下是一个参考函数,
参数$str为,原始字符串,例如123456。
参数$i为,要插入的位置。
参数$substr为,要插入的字符串,例如hello。
返回值为最后结果,例如12345hello6
functionstr_insert($str,$i,$substr)
{
for($j=0;$j<$i;$j++){
$startstr.=$str[$j];
}
for($j=$i;$j<strlen($str);$j++){
$laststr.=$str[$j];
}
$str=($startstr.$substr.$laststr);
return$str;
}
‘叁’ [php]如何在PHP中截取中文字串无乱码
一年前写的一个函数。用法与substr一样,支持中文。您也可以加以改进。
//截取字符串含数,对系统函数的改进,不会将中文变乱。
function mysubstr ($str,$start,$len=0,$cutchar="…") {
$str=str_replace("",' ',$str);
$str=str_replace("“",'“',$str);
$str=str_replace("”",'”',$str);
$str=str_replace("—",'—',$str);
$str=str_replace(""",'"',$str);
$str=str_replace(''',"'",$str);
$str=str_replace("<",'<',$str);
$str=str_replace(">",'>',$str);
$str=str_replace("&",'&',$str);
$str=preg_replace("/[\s]+/"," ",$str);
$tolen=strlen($str);
if(!($start==0 && $len>=$tolen)){
//为方便操作,先将起始值和长度值转换为正数
if($start<0)$start=$tolen+$start;if($start<0)$start=0;if($start>$tolen)return "";
if($len<=0)$len=($tolen+$len)-$start;if($len<1)return "";
if($len>$tolen)$len=$tolen;
for($i=0;$i<$start;$i++){
if(ord(substr($str,$i,1))>127){$i++;}
}
$start=$i; //起始位置计算完成
for($k=0;$k<$len;$k++,$i++){
if(ord(substr($str,$i,1))>127){$i++;$k++;}
}
$len=$k; //长度计算完成
$str=substr($str,$start,$len);
if($start>0){$str=$cutchar.$str;}
if($start+$len<$tolen){$str.=$cutchar;}
}
$str=str_replace("&",'&',$str);
$str=str_replace('"','"',$str);
$str=str_replace("'",''',$str);
$str=str_replace("<",'<',$str);
$str=str_replace(">",'>',$str);
return $str;
}
‘肆’ PHP中str_replace(substr($cs,0,1),strtoupper(substr($cs,0,1)),$cs)是什么意思
你的 $cs 应该是一个很长的字符串吧
先看最外面的 $str_replace(),字符串替换,它里面有三个参数,第一个是你想将哪个字符串替换掉,第二个是替换成什么,第三个是执行替换的数组或者字符串,简单点就是只在$cs范围里替换
再看第一个参数,substr($cs,0,1),截取$cs下标从0到1的字符
第二个参数,先执行substr($cs,0,1),将截取到的字符串再转化为大写
第三个就$cs了
总的来说,你得先有值才能进行替换操作(str_replace),就像数学算数一样,大括号最后才执行,先执行最里面的
‘伍’ thinkphp从数据库获取的电话号码,我要中间四个数字用星号表示怎么做
这里需要用到一个php的函数:substr_replace()函数把字符串的一部分替换为另一个字符串。
这个函数的用法如下:substr_replace(string,replacement,start,length)
参数:
string要被检查提取内容的字符串
replacement替换后的字符串
start截取的开始位置(以0开始)
length截取的长度
直接上代码:(假如数据库中的电话号码的字段名为phone)
$model=D('User);
$dataList=$model->select();//请加上你自己需要的条件
if($dataList)
{
foreach($dataListas$key=>$value)
{
$dataList[$key]['phone']=substr_replace($value['phone'],'****',3,4);
}
}
var_mp($dataList);
输出如下:
array(size=2)
0=>
array(size=1)
'phone'=>string'135****8956'(length=11)
1=>
array(size=1)
'phone'=>string'159****7845'(length=11)
‘陆’ php的substr_replace()和str_replace()有什么不同啊,都是吧字符串一部分替换'
区别在于:
1.substr_replace():把字符串的一部分替换为另一个字符串.
str_replace():使用一个字符串替换字符串中的另一些字符
substr_replace()用于把字符串的一部分替换为另一个字符串,返回混合类型。
语法:
mixsubstr_replace(mixedstring,stringreplacement,intstart[,intlength])
例如:
<?php
echo str_replace("world","earth","Hello world!"); //输出 Hello earth!
//替换多个,且第二个参数为空字符
echo str_replace("o","","Hello world!"); //输出 Hell wrld!
//使用数组
$arr = array("e", "o");
$arr2 = array("x", "y");
echo str_replace($arr, $arr2, "Hello World of PHP", $i); //输出 Hxlly Wyrld yf PHP
echo $i; //输出4
?>
注意:1.该函数与 substr_replace() 不同之处是满足条件的都进行替换
2.该函数对大小写敏感。如需进行大小写不敏感的查找替换,请使用 str_ireplace()
‘柒’ php如何去除最后一个匹配字符
第一种,直接使用strrpos,substr实现
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<?php
$str="hello,how are you!";//要处理的字符串
$lastchar="o";//最后一个字符
$pos=strrpos($str,$lastchar);//确定最后一个字符的位置
$str=substr($str,0,$pos).substr($str,$pos+strlen($lastchar));//截取并合并字符串
echo $str;
?>
第二种,使用explode,将匹配的字符作为分隔符,分隔成数组,之后重新合并数组,过滤掉匹配的最后一个字符即可。
代码如下:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<?php
$str="hello,how are you!";
$lastchar="o";
$ary=explode($lastchar,$str);
for($i=0;$i<count($ary);$i++)
{
if($i<(count($ary)-2))
{
$res.=$ary[$i].$lastchar;
}
else
{
$res.=$ary[$i];
}
}
echo "<div>最终结果:".$res."</div>";
?>
希望对你有帮助。