PHP 字符串函数总结
<?php header('content-type:text/html;charset=utf-8'); //字符串非常重要!!!!!!!!!!!!!!! //字符串定义方式 // ''只转译 ' / 但是“”转译的比较多 // ""可以解析变量 // ''速度比较快,不用分析变量,转译内用少。我们优先使用 '' $str1 = 'hello'; $str2 = "hello"; //写大段文本 //heredoc <<<HTML ......HTML; //类似于"" 可以解析文本中的变量 //nowdoc <<<'HTML'......HTML; //字符串函数 /* 字符长度计算 查找字符位置 字符替换 提取字符 分割连接反转字符 去除增加空格 HTML代码/数据库安全处理字符 比较字符 字符大小写转换 */ number_format('123456789');//123,456,789 使用科学计数法表示字符串 str_repeat(' ', 10); //重复空格10次 //计算字符串长度 $t1 = 'abcdefghijklmn abcdefg'; $t2 = '我是中国人'; echo strlen($t1),'<br />'; //22 //计算字符长度 echo mb_strlen($t2,'utf-8'), '<br />'; //utf-8 必须加 '' //5 //计算字节长度 //反转字符 echo strrev($t1).'<br />';//gfedcba nmlkjihgfedcba 反转字符 //reverse 背面,反面 反转 同数组反转array_reverse 字符串是strrve //查找自字符串的位置 $t1 = 'abcdefghijklmn abcd.efg'; $t3 = 'd'; $t4 = 'bc'; echo strpos($t1, $t3), '<br />'; //区分大小写,查找第一次出现的位置//返回值为int echo stripos($t1, 'c'), '<br />'; //不区分大小写,返回字符串在另一个字符串出现的位置 echo strrpos($t1, '.'), '<br />'; //区分大小写,最后一次出现的位置 //19 echo strrchr($t1, '.').'<br />'; //查找字符串最后出现的位置,并打印之后的 //.efg //字符串替换 $t1 = 'abcdefghijklmn abcdefg'; $t5 = 'opqrsruvw'; echo str_replace('Abc', 'dEfg', $t1), '<br />'; //区分大小写,如果不同不会进行替换,在$t1中,defg替换掉abc echo str_ireplace('ABC', 'HAHAha', $t1), '<BR />';//进行替换 //不区分大小写 echo strtr($t1, 'aBCd', 'HAHAHA'),'<bR />'; //HAHAHA只替换成HbcA,中间BC不被替换,只替换4位// 区分大小写,但是还是会进行替换 //只是截取等长部分,区分大小写,而且之替换相同的 echo substr_replace($t1, $t5, 4, 3),'<br>'; //$t5从$t1的第4位开始替换,$t1失去3字节的内容,如果没有写3,则默认替换掉$t1从第4位后的所有字节 //截取字符串 $t1 = 'abcdefghijklmn abcdefghijklmnopq'; $t6 = 'fg'; echo substr($t1, 3, 5),'<bR /><br />'; //defgh //从$t1的第3位开始,截取5字节内容,默认截取余下全部 echo mb_substr($t1, 1, 10, 'UTF8'); //从第1位开始,长度为10,字符编码为 UTF-8 截取, 返回值string echo strstr($t1, $t6),'<br />'; //从$t1中找到$t6,截取后半截,$t6必须完全存在于$t1中,且区分大小写 echo stristr($t1, 'FGH'),'<br />'; //同上不区分大小写 echo strrchr($t1, $t6), '<br />';//$t6最后一次出现的位置截取到最后 //分割, 连接, 反转字符串 $t1 = 'abcde fghijklmn abcde fgh ijklm nopq'; var_dump(str_split($t1, 5)); //返回数组类型, 把$t1按照5个字节分成数组 echo '<br />'; /* array (size=7) 0 => string 'abcde' (length=5) 1 => string 'fghij' (length=5) 2 => string 'klmn ' (length=5) 3 => string 'abcde' (length=5) 4 => string 'fghij' (length=5) 5 => string 'klmno' (length=5) 6 => string 'pq' (length=2) */ $t7 = explode(' ', $t1); //将$t1以空格分开,返回数组, echo $t7[0], '<br />', $t7[3], '<br />';//abcde fgh var_dump($t7); /* array (size=6) 0 => string 'abcde' (length=5) 1 => string 'fghijklmn' (length=9) 2 => string 'abcde' (length=5) 3 => string 'fgh' (length=3) 4 => string 'ijklm' (length=5) 5 => string 'nopq' (length=4) */ echo implode($t7, '/'), '<br />';//abcde/fghijklmn/abcde/fgh/ijklm/nopq //将$t7用 / 连接起来,并且以字符串的形式返回 //空白处理字符串 $t1 = ' abcde fghijklmn abcde fgh ijklm nopq '; echo trim($t1), '<br />';//处理$t1 前后 的空白字符,包括 ""空格 "\t"制表符 "\n"换行符 "\r"回车符 "\0"空字节 "\x08"垂直制表符 echo ltrim($t1),'<br />';//处理$t1 前 的空白字符,同上//可查看网页源代码 echo rtrim($t1),'<br />';//处理$t1 后 的空白字符,同上 ECHO chunk_split('abcdefghijklmnopq', 3, ','),'<BR />';//abc,def,ghi,jkl,mno,pq,//将字符串按照 3个字符+一个,分割开,并连起来 echo str_pad('zxd', 6),'<br />';//将 zxd 填充到6个字节 echo str_pad('zxd', 6, '_',STR_PAD_LEFT),'<BR />';//___zxd 以 _ 对 zxd 进行填充 // STR_PAD_LEFT STR_PAD_BOTH 或者不填则直接填到最后 //字符转义 $t8 = "My name\id Xiaodong'ZHANG"; $t9 = "My name\\id Xiaodong\'ZHANG"; echo addslashes($t8),'<br/>'; //My name\\id Xiaodong\'ZHANG 使用反斜线引入字符串 //为了向数据库中输入带有 " ' \ null 的数据的时候使用的, echo stripslashes($t9),'<br />';//My nameid Xiaodong'ZHANG 反引用一个引用字符串 同上相反,从数据库中提取数据 //没有搞懂,同以下几个都没搞懂 echo get_magic_quotes_gpc(); echo htmlspecialchars('<h1>HEllp'),'<br />';//将字符串中的一些字符转换成HTML实体,其中< >被翻译成< > echo htmlspecialchars_decode('<h1>HEllp'),'<br />';//<h1>HEllp //同上相反,这个是在网页中显示效果,上则是在源代码中显示效果 echo htmlentities('html<h1><p>'),'<br />';//把字符串中所有可以转换的字符换成HTML实体 echo html_entity_decode('< > haha'),'<br />';//同上 相反 // echo '<h1>nihao<h1> <br />';//直接在网页上输出大写的nihao 类似于网页效果 // echo '<h1> nihao<h1>','<br />';//直接转译成<h1> nihao 并且自带效果 echo 'heiadk<br />';//上两行必须屏蔽掉,否则之后的自带h1效果 //字符串比较 echo strcmp('abcd', 'abcde').'<br />'; //-1 //str1大于str2是为正数,相等为0 echo strcasecmp('ABcDe', 'abcDE').'<br />'; //0 //字符串转换大小 ECHO strtolower('ABcDeFg').'<br />'; //abcdefg echo strtoupper('strinABcDeFg').'<br />';//STRINABCDEFG echo ucfirst('andjfJSUD').'<BR />'; //AndjfJSUD 首字母为大写 echo ucwords('my name Is zhang XAIO dong').'<br />'; //My Name Is Zhang XAIO Dong 每个单词的首字母大写 // 将1234567890转换成1,234,567,8 $str1 = '1234567890'; $str4 = strrev($str1); $str2 = chunk_split($str4, 3, ','); //098,765,432,1, $str3 = substr($str2, 2, 11); echo strrev($str3); echo number_format('123456789');
效果图: