PHP编程中字符串处理的5个技巧小结

时间:2021-05-26

字符串
注意单引号和双引号的区别
注意转义字符\的使用\\,\",\$
注意使用8进制或16进制字符表示\xf6
echo"H\xf6me";//需要察看是否支持此类文字编码
---------------------输出结果----------------------------------------
H鰉e
---------------------------------------------------------------------

1.使用printf()和sprintf()创建格式化的输出

printf()直接输出到输出缓冲区
sprintf()的输出作为字符串返回
如printf("输出内容%.2f\n",$PI());
所有的转换规范都以%开头
数据类型有d-整数,s-字符串,f-浮点数,b-二进制
.2是一个可选的宽度指标,小数点右边输出使用0填充
printf("%.2f",3.14159);
printf("%10.2f",3.14159);
printf("%.10f",3.14159);
printf("%.9s",abcdefghijklmn);
printf("%5.2f,%f,%7.3f\m",3.14159,3.14159,3.14159);
printf("%b%d%f%s\n",123,123,123,"test");
---------------------输出结果----------------------------------------
3.143.143.1415900000abcdefghi3.14,3.141590,3.142\m1111011123123.000000test
---------------------------------------------------------------------

2.字符串填充

stringstr_pad(stringinput原始字串,intlength添加后的总长度[,stringpadding要填充的字符[,intpad_type]填充类型])
填充类型有添加在左边STR_PAD_LEFT,默认添在右边,填充在两端STR_PAD_BOTH
$index=array("one"=>1,"two"=>155,"three"=>1679);
echo"
";
echostr_pad("这是标题",50,"",STR_PAD_BOTH)."\n";
foreach($indexas$inkey=>$inval)
echostr_pad($inkey,30,".").str_pad($inval,20,".",STR_PAD_LEFT)."\n";
echo"
";
---------------------输出结果----------------------------------------

这是标题
one..............................................1
two............................................155
three.........................................1679

---------------------------------------------------------------------
stringstrtolower(stringsubject)//转换为小写
stringstrtoupper(stringsubject)//转换为大写
stringucfirst(stringsubject)//首字母大写
stringucwords(stringsubject)//每个单词首字母大写
stringltrim(stringsubject)//去左空白
stringrtrim(stringsubject)//去右空白
stringtrim(stringsubject)去左右空白,空白包括null,制表符,换行符,回车符和空格
stringn12br(stringsource)//将\n表示的换行符转换为<BR/>标记

3.字符串比较

integerstrcmp(stingstr1,stringstr2)//str1大于str2返回-1str1小于str2返回1str1和str2相等返回0
integerstrmcmp(stingstr1,stringstr2,integerlength)//第三个参数限制length个字符的比较
printstrcmp("aardvark","aardwolf");
printstrncmp("aardvark","aardwolf",4);
---------------------输出结果----------------------------------------
-10
---------------------------------------------------------------------
strcasecmp()和strncasecmp()是不区分大小写的比较函数

4.查找和抽取子字符串

stringsubstr(stingsource,integerstart[,integerlength])//从start开始取length个字符
start和length可以使用负值
$var="abcdefgh";
printsubstr($var,2);//从0开始计数
printsubstr($var,2,3);
printsubstr($var,-1);//从字符串的末尾开始
printsubstr($var,-5,2);
printsubstr($var,-5,-2);
---------------------输出结果----------------------------------------
cdefgh
cde
h
de
def
---------------------------------------------------------------------
integerstrpos(stringhaystack,stringneedle[,integeroffset])//查找子字符串的位置,返回第一次出现.
integerstrrpos(stringhaystack,stringneedle)//只搜索单个字符(多个字符只取第一个),返回最后一次出现的索引.
还有常见的从字符串中抽取找到的部分的函数
stringstrstr(stringhaystack,stringneedle)//不区分大小写
stringstristr(stringhaystack,stringneedle)//区分大小写
stringstrrchr(stringhaystack,stingneedle)
***********arrayexplode(stringseparator,stringsubject[,integerlimit])//返回一个字符串数组
arrayimplode(stringglue,arraypieces)//返回一个字符串
///////////////////////////代码段////////////////////////////////////////
$guest="thisisastring";
$guestArray=explode("",$guest);
var_dump($guestArray);
sort($guestArray);
echoimplode(",",$guestArray);
////////////////////////////////////////////////////////////////////////
---------------------输出结果----------------------------------------
array(4){[0]=>string(4)"this"[1]=>string(2)"is"[2]=>string(1)"a"[3]=>string(6)"string"}a,is,string,this
---------------------------------------------------------------------

5.替换字符和子字符串

stringsubstr_replace(stringsource,stringreplace,intstart[,intlength])

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章