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');

效果图:
PHP 字符串函数总结