php字符串函数 str类常见用法示例
本文实例讲述了php字符串函数str类常见用法。分享给大家供大家参考,具体如下:
str_split(string,leg);//将一个字符串转换为数组,参数1:要被转换的字符串,参数2:每段长度,返回一个转换后的数组
例:
Array
(
[0]=>Hel
[1]=>lo
[2]=>Fri
[3]=>end
)ord(string);//返回字符的ASCII码值,,,返回字符串string第一个字符的ASCII码值
例:$test='abc';
$offset=0; while($offset>=0){ echo$offset.":".ordutf8($text,$offset)."\n"; //97,98,99sizeof();//count()的别名
end();//将数组的内部指针指向最后一个单元
strlen($string);//获取字符串长度
例:
echostrlen('hai');//3sprintf(format,arg1,arg2,arg++);//把格式化的字符串写入变量中。
- format:规定字符串以及如何格式化其中的变量
- arg1:规定插到format字符串中第一个%符号处的参数。
- arg2:规定插到format字符串中第二个%符号处的参数。
例:
";//二进制数 echosprintf("%%c=%c",$char)."
";//ASCII字符 echosprintf("%%d=%d",$num1)."
";//带符号的十进制数 echosprintf("%%d=%d",$num2)."
";//带符号的十进制数 echosprintf("%%e=%e",$num1)."
";//科学计数法(小写) echosprintf("%%E=%E",$num1)."
";//科学计数法(大学) echosprintf("%%u=%u",$num1)."
";//不带符号的十进制数(正) echosprintf("%%u=%u",$num2)."
";//不带符号的十进制数(负) echosprintf("%%f=%f",$num1)."
";//浮点数(视本地设置) echosprintf("%%F=%F",$num1)."
";//浮点数(不视本地设置) echosprintf("%%g=%g",$num1)."
";//短于%e和%f echosprintf("%%G=%G",$num1)."
";//短于%E和%f echosprintf("%%o=%o",$num1)."
";//八进制数 echosprintf("%%s=%s",$num1)."
";//字符串 echosprintf("%%x=%x",$num1)."
";//十六进制数(小写) echosprintf("%%X=%X",$num1)."
";//十六进制数(大写) echosprintf("%%+d=%+d",$num1)."
";//符号说明符(正) echosprintf("%%+d=%+d",$num2)."
";//符号说明符(负) ?>
返回结果:
%b=111010110111100110100010101
%c=2
%d=123456789
%d=-123456789
%e=1.234568e+8
%E=1.234568E+8
%u=123456789
%u=18446744073586094827
%f=123456789.000000
%F=123456789.000000
%g=1.23457e+8
%G=1.23457E+8
%o=726746425
%s=123456789
%x=75bcd15
%X=75BCD15
%+d=+123456789
%+d=-123456789
substr_replace(mixed$string,mixed$replacement,mixed$start[,mixed$length]);//替换字符串的子串
- $string:输入的字符串,
- $replacement:用来替换的字符串,
- $start:为正数时,从$string的start位置开始,为负数时,从$string的末尾开始,,,,
- $lenght:为正数时,表示被替换的子字符串的长度。为负数时,表示待替换的子字符串结尾处距离string末端的字符个数。
\n"; /*这两个例子使用"bob"替换整个$var。*/ echosubstr_replace($var,'bob',0)."
\n"; echosubstr_replace($var,'bob',0,strlen($var))."
\n"; /*将"bob"插入到$var的开头处。*/ echosubstr_replace($var,'bob',0,0)."
\n"; /*下面两个例子使用"bob"替换$var中的"MNRPQR"。*/ echosubstr_replace($var,'bob',10,-1)."
\n"; echosubstr_replace($var,'bob',-7,-1)."
\n"; /*从$var中删除"MNRPQR"。*/ echosubstr_replace($var,'',10,-1)."
\n"; ?>
strpos();//查找字符串首次出现的位置。
1、
2、
3、
preg_split($pet,$str);//通过一个正则表达式分隔字符串;
$keywords=preg_split("/[\s,]+/","hypertextlanguage,programming"); print_r($keywords);
输出:
array(3){
[0]=> string(9)"hypertext"
[1]=> string(8)"language"
[2]=> string(11)"programming"
}
explode($del,$str,$limit);//使用一个字符串分割另一个字符串
- $del:分隔符
- $str:字符串
- $limit:如果设置了limit参数并且是正数,则返回的数组包含最多limit个元素,而最后那个元素将包含string的剩余部分。如果limit参数是负数,则返回除了最后的-limit个元素外的所有元素,如果limit是0,则会被当做1。
以上例程会输出:
Array
(
[0]=>one
[1]=>two|three|four
)
Array
(
[0]=>one
[1]=>two
[2]=>three
)
parse_str($str);//将字符串解析成多个变量
$str="first=value&arr[]=foo+bar&arr[]=baz"; parse_str($str); echo$first;//value echo$arr[0];//foobar echo$arr[1];//baz parse_str($str,$output); echo$output['first'];//value echo$output['arr'][0];//foobar echo$output['arr'][1];//baz
strstr($string,$needle,$before_needle);//查找字符串的首次出现
- string,输入字符串。
- needle,如果needle不是一个字符串,那么它将被转化为整型并且作为字符的序号来使用。
- before_needle,若为TRUE,strstr()将返回needle在haystack中的位置之前的部分。
substr($string,$start,$lenght);//返回字符串的子串(返回字符串string由start和length参数指定的子字符串)
1、
2、
3、
strtr();//转换指定字符
stringstrtr(string$str,string$from,string$to)
stringstrtr(string$str,array$replace_pairs)
该函数返回str的一个副本,并将在from中指定的字符转换为to中相应的字符。比如,$from[$n]中每次的出现都会被替换为$to[$n],其中$n是两个参数都有效的位移(offset)。
如果from与to长度不相等,那么多余的字符部分将被忽略。str的长度将会和返回的值一样。
1、
使用两个参数的strtr()范例
"hi","hi"=>"hello"); echostrtr("hiall,Isaidhello",$trans); ?>
以上例程会输出:
helloall,Isaidhi
2、
"01"); echostrtr("baab",$trans); ?>
以上例程会输出:
1001
ba01
str_replace(mixed$search,mixed$replace,mixed$subject[,int&$count]);//子字符串替换
该函数返回一个字符串或者数组。该字符串或数组是将subject中全部的search都被replace替换之后的结果
$bodytag=str_replace("%body%","black",""); //赋值:HllWrldfPHP $vowels=array("a","e","i","o","u","A","E","I","O","U"); $onlyconsonants=str_replace($vowels,"","HelloWorldofPHP"); //赋值:Youshouldeatpizza,beer,andicecreameveryday $phrase="Youshouldeatfruits,vegetables,andfibereveryday."; $healthy=array("fruits","vegetables","fiber"); $yummy=array("pizza","beer","icecream"); $newphrase=str_replace($healthy,$yummy,$phrase); //赋值:2 $str=str_replace("ll","","goodgollymissmolly!",$count); echo$count; ?>
'; //首先替换\r\n字符,因此它们不会被两次转换 $newstr=str_replace($order,$replace,$str); //输出F,因为A被B替换,B又被C替换,以此类推... //由于从左到右依次替换,最终E被F替换 $search=array('A','B','C','D','E'); $replace=array('B','C','D','E','F'); $subject='A'; echostr_replace($search,$replace,$subject); //输出:apearpearlepear //由于上面提到的原因 $letters=array('a','p'); $fruit=array('apple','pear'); $text='ap'; $output=str_replace($letters,$fruit,$text); echo$output; ?>
更多关于PHP相关内容感兴趣的读者可查看本站专题:《php常用函数与技巧总结》、《php字符串(string)用法总结》、《PHP数组(Array)操作技巧大全》、《PHP基本语法入门教程》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》
希望本文所述对大家PHP程序设计有所帮助。