PHP之路 PHP基础【第五篇】字符串
字串的定义
1. 单引号: '' 不支持变量的解析,转义符: \\ \' 2. 双引号: "" 支持变量的解析,转义符: \n \r \t \" \$ \\ ... 3. 定界符: <<< 注意结束符的使用。
字串输出函数
1. echo() 支持多个变量同时输出 如: echo $s1,$s2; 2. print() 不支持多个变量。 3. die() 别名exit() 终止当期脚本执行,可以顺便输出内容 4. print_r() 与var_dump()函数类似,都是格式化变量并直接输出,可以解析数组,对象等类型 常用于开发时的临时输出使用(测试) 5. printf() 格式化字串并输出 6. sprintf() 格式化字串并返回 chr()和ord()是实现ASCII码值和字符之间的转换
<?php header("Content-Type: text/html;charset=utf-8"); //字串输出函数 //1. echo 和print的输出: // echo来自于脚本的输出,而print是来自于C语言的输出 // 其中echo支持多个值输出,而print不可以 echo "aaa"; print "bbb"; echo("ccc"); print("dddd"); $a=10; $b=20; $c=30; echo $a,$b,$c; //同时输出多个变量 //print $a,$b,$c; //print不可以一次输出多个变量 print $a.$b.$c; //现将变量连接成一个值,再由print输出。 echo "<hr/>"; //2. var_dump()和print_r()的格式化输出 //var_dump和print_r除了可以输出标量类型,也可以输出复合类型和特殊类型 var_dump(10); //int(10) 带类型输出 print_r(10); //10 等价于echo或print var_dump("zhangsan"); //string(8) "zhangsan" 带类型输出 print_r("zhangsan"); //zhangsan 等价于echo和print echo "<br/>"; $a=array(10,20.8,"abc"); echo $a; //Array print $a; //Array print_r($a); //Array ( [0] => 10 [1] => 20.8 [2] => abc ) var_dump($a); //array(3) { [0]=> int(10) [1]=> float(20.8) [2]=> string(3) "abc" } echo "<br/>"; $a=NULL; echo $a; //没有输出 print_r($a); //没有输出 var_dump($a); //NULL
常用处理函数
ltrim() 去除左侧多余字符(默认删空格) rtrim() 去除右侧多余字符(默认删空格) * trim() 去除两侧多余字符(默认删空格) str_pad() 使用另一个字符串填充字符串为指定长度 * 函数: strtolower( ) 语法: string strtolower(string str); 本函数将字符串 str 全部变小写字符串。 * 函数: strtoupper( ) 语法: string strtoupper(string str); 本函数将字符串 str 全部变大写字符串。 函数:ucfirst( ) 将字符串第一个字符改大写。 语法: string ucfirst(string str); 本函数返回字符串 str 第一个字的字首字母改成大写。 函数:ucwords( ) 将字符串每个字第一个字母改大写。 语法: string ucwords(string str); 本函数返回字符串 str 每个字的字首字母全都改成大写。 int ord(string $string ) — 返回字符的 ASCII 码值 string chr(int $ascii ) — 返回指定的字符 网页输出格式化函数 nl2br--将字串中\n换成<br/>标签,实现换行输出。 * htmlspecialchars--格式换字串中的html标签 htmlentities-- * strip_tags -- 删除html标签函数 strrev -- 将字串颠倒返回 * strlen -- 求字串长度: 字母:一个算一个长度,汉字:utf-8编码是每个汉字3个长度,其他是2长度 * mb_strlen(str,"utf-8");获取中文字的长度 number_format -- 格式化数字的 * md5 -- 单向加密的(不可逆的(不能解密的))。 strcmp -- 整个比较是否相同 strncmp --指定长度的比较 strcasecmp-- 不区分大小写比较 strnatcmp -- 按自然顺序比较 similar_text -- 模糊比较 * explode -- 字符串拆分函数 * implode -- 字符串组合函数 * substr -- 截取字串 a.txt a.rm a.rmvb a.b.txt string返回值 substr( string string被截字串, int start起始位置 [, int length长度] ) * mb_substr() --截取指定编码的字串 * strstr -- 字串查找并截取 strchr -- 是上面的strstr的别名找并截取 strrchr -- 从后面做字串查找。找并截取 * strpos --寻早一个字符出现位置(从前开始。第三个参数为查找起始位置) strrpos --寻早一个字符出现位置(从后面开始找。) * 换成字串 str_replace(被换字串,换成的字串,原字串,[数量]);字符串替换 file_get_contents("文件名") // 获取指定文件的内容 file_put_contents("文件名","内容")//将内容写入(覆盖写)到指定文件中 file_put_contents("文件名","内容",FILE_APPEND) //将内容写入(追加写)到指定文件中
<?php //字串格式化函数 /* ltrim() 去除左侧多余字符(默认删空格) rtrim() 去除右侧多余字符(默认删空格) * trim() 去除两侧多余字符(默认删空格) */ $s = " abc "; echo "#".$s."#<br/>"; echo "#".ltrim($s)."#<br/>"; //去除左侧空格 echo "#".rtrim($s)."#<br/>"; //去除右侧空格 echo "#".trim($s)."#<br/>"; //去除两侧空格 //循环1到5的值,并使用逗号隔开 $str=""; for($i=1;$i<=5;$i++){ $str.=$i.","; } echo rtrim($str,","); //去除字串str后面多余的逗号
<?php header("Content-Type: text/html;charset=utf-8"); //字串中大小写的转换 /* * 函数: strtolower( ) 语法: string strtolower(string str); 本函数将字符串 str 全部变小写字符串。 * 函数: strtoupper( ) 语法: string strtoupper(string str); 本函数将字符串 str 全部变大写字符串。 函数:ucfirst( ) 将字符串第一个字符改大写。 语法: string ucfirst(string str); 本函数返回字符串 str 第一个字的字首字母改成大写。 函数:ucwords( ) 将字符串每个字第一个字母改大写。 语法: string ucwords(string str); 本函数返回字符串 str 每个字的字首字母全都改成大写。 */ $s = "Hello World!"; echo "原字串:".$s."<br/>"; echo "转小写:".strtolower($s)."<br/>"; echo "转大写:".strtoupper($s)."<br/>"; $foo = 'hello world!'; echo ucwords($foo); // Hello World! echo ucfirst($foo); // Hello world! echo "<h3>字串填充</h3>"; for($i=1;$i<200;$i++){ echo "2015".str_pad($i,4,"0",STR_PAD_LEFT)."<br/>"; }
<?php // 网页输出格式化函数 /* nl2br--将字串中\n换成<br/>标签,实现换行输出。 * htmlspecialchars--格式换字串中的html标签 htmlentities-- * strip_tags -- 删除html标签函数 */ $str="aaaaaa\nbbbbbbbbbb\nccccccccc\nddddddddd"; echo nl2br($str); //将参数中的换行符替换成br标签 echo "<hr/>"; $s = "<ul> <li>aaaaa</li> <li>bbbbb</li> <li>ccccc</li> <li>ddddd</li> </ul></div>"; echo "<pre>"; echo htmlspecialchars($s); //将html中的< >转成对应的实体< > echo "<hr/>"; echo strip_tags($s); //清除字串中的HTML标签
<?php //字串的其他格式化函数 /* strrev -- 将字串颠倒返回 * strlen -- 求字串长度: 字母:一个算一个长度,汉字:utf-8编码是每个汉字3个长度,其他是2长度 * mb_strlen(str,"utf-8");获取中文字的长度 number_format -- 格式化数字的 * md5 -- 单向加密的(不可逆的(不能解密的))。 */ //echo strlen("你好"); //在UTF-8编码占3个长度/每个字,其他占2个长度。 echo mb_strlen("你好","utf-8"); //2 指定编码求长度,无论字母还是汉字一个算一个。 //echo md5(md5("123")."asdfasdf"); //202cb962ac59075b964b07152d234b70 /* $s = "zhangsan"; echo strrev($s); echo "求字串长度:".strlen($s); //8 echo "<br/>"; //数字格式化 $s = 123456784.657; echo number_format($s,2); //123,456,784.66 echo "<hr/>"; //php中的字串可以把它看成一个字符数组。 $s = "zhangsan"; echo $s[0]; //z echo $s[1]; //h echo $s[2]; //a echo "<br/>"; //将字串s倒着输出 for($i=strlen($s)-1;$i>=0;$i--){ echo $s[$i]; } echo "<hr/>"; */
<?php header("Content-Type: text/html;charset=utf-8"); //字串比较: /* strcmp -- 整个比较是否相同 strncmp --指定长度的比较 strcasecmp-- 不区分大小写比较 strnatcmp -- 按自然顺序比较 similar_text -- 模糊比较 */ //整个字串比较 echo strcmp("abc","abd"); //-1表示后面的大, 1表示前面的大 0表示相等 echo strncmp("abc","abd",2); //0相等: 比较字串的前2个字符是否相等 echo "<br/>"; echo "id8和id18做字串比较:".strcmp("id8","id18")."<br/>"; //1 前面大 echo "id8和id18做自然比较:".strnatcmp("id8","id18")."<br/>";//-1 后面大 echo "<hr/>"; $s1 = "ae sdfl jqw lek rjqlkw ejr qlkwejrql kwerq wer asdf"; $s2 = "ae sdfl jqw lek rjqllw ejr qlkwejrql kwerq wer sdf"; echo "相似度:".((similar_text($s1,$s2)/strlen($s1))*100)."%";
<?php header("Content-Type: text/html;charset=utf-8"); //字串的拆分和拼装: //* explode -- 字符串拆分函数 //* implode -- 字符串组合函数 $str = "10,;,20,;,30,;,40"; echo "原字串:".$str."<br/>"; echo "拆分后:"; $a = explode(",;,",$str); //将字串str以逗号作为分隔符拆分出数组 print_r($a); echo "<br/>"; $s = implode(":",$a); //将数组a以分隔符:拼装称字串 echo "拼装后的字串:".$s."<br/>";
<?php header("Content-type:text/html;charset=utf-8"); //字串截取: $str="mingrenboke"; //请使用字串截取函数substr()将上面字串中的ang截取出来; echo substr($str,2,3)."<br/>"; //从索引位置2开始截取3个长度 echo substr($str,2,-7)."<br/>";//从索引位置2开始截取到最后,排除后7个 echo substr($str,-10,3)."<br/>";//从倒数第10个位置开始,截取3个 echo substr($str,-10,-7)."<br/>";//从倒数第10个位置开始,截取到最后,排除后7个 //截取中文 echo mb_substr("中文字串截取处理",2,4,"utf-8"); //字串查找并截取: //* strstr -- 字串查找并截取 // strchr -- 是上面的strstr的别名找并截取 // strrchr -- 从后面做字串查找。找并截取 $s = "zhangsan"; echo strstr($s,"a")."<br/>"; //angsan 从字串s中查找第一个a字母出现的位置并截取到最后。 echo strchr($s,"a")."<br/>"; //angsan 从字串s中查找第一个a字母出现的位置并截取到最后。 echo strrchr($s,"a"); //an 从字串s中后面开始向前查找第一出现的a字母,并截取到最后。 echo "<hr/>";
<?php //字串替换函数 //str_replace--字串替换 //mixed str_replace(mixed $search,mixed $replace,mixed $subject[,int &$count]) $s = "10,20,30,40,50"; //一对一替换:将上面字串中的逗号,替换成冒号: echo str_replace(",",":",$s)."<br/>"; $s = "10,20;30,40;50"; //多对一替换:将上面字串s中的逗号和分号都替换成冒号 echo str_replace(array(",",";"),":",$s)."<br/>"; $s = "10,20;30,40;50"; //多对多对应替换:将上面字串s中的逗号换成冒号,分号换成感叹号 echo str_replace(array(",",";"),array(":","!"),$s);
<?php header("Content-type:text/html;charset=utf-8"); $s = "zhangsan"; echo "第一次出现a字母的位置:".strpos($s,"a")."<br/>"; echo "倒数第一次出现a字母的位置:".strrpos($s,"a")."<br/>";
谢谢