欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

PHP 字符串函数总结

程序员文章站 2022-04-14 08:18:32
...
<?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 字符串函数总结