/*~~~~~~~~去空格或其他字符串~~~~~~~~~~*/
trim() 删除字符串两端的空格和其他预定义字符,当两边有空格时,无法对指定字符进行删除
$str=" ☆ hello☆worldnihao ☆ ";
var_dump($str).'<br>'; //string ' ☆ hello☆worldnihao ☆ ' (length=32)
var_dump(trim($str)).'<br>'; //string '☆ hello☆worldnihao ☆' (length=28)
var_dump(trim($str,'☆')).'<br>';//string ' ☆ hello☆worldnihao ☆ ' (length=32)
ltrim() 删除字符串左边的空格或其他预定义字符
$str="☆ hello☆worldnihao ☆";
var_dump(ltrim($str,'☆')).'<br>';//string' hello☆worldnihao ☆' (length=25)
var_dump(rtrim($str,'☆')).'<br>';//string '☆ hello☆worldnihao ' (length=25)
chop() rtrim()的别名
$str="☆ hello☆worldnihao ☆";
var_dump(chop($str,'☆')); //string '☆ hello☆worldnihao ' (length=25)
dirname() 返回路径中的目录部分
echo dirname("c:/testweb/home.php"); //c:/testweb
/*~~~~~~~~~字符串生成与转化~~~~~~~~~~~*/
str_pad() 使用另一个字符串填充字符串到指定长度,默认右填,STR_PAD_LEFT左填充,STR_PAD_BOTH两侧填充
$str='hello world';
echo str_pad($str,20,'.').'<br>'; //hello world.........
echo str_pad($str,20,'.',STR_PAD_LEFT); //.........hello world
echo str_pad($str,20,'.',STR_PAD_BOTH); //....hello world.....
str_repeat() 重复使用指定字符串
echo str_repeat('.',13); //.............
str_split() 把字符串分割到数组中
print_r(str_split('hello')); //Array ( [0] => h [1] => e [2] => l [3] => l [4] => o )
strrev() 反转字符串
echo strrev('hello world'); //dlrow olleh
wordwrap() 按照指定长度对字符串进行折行处理,使用var_dump输出,echo不管用
$str='An example on a long word is: Supercalifragulistic';
var_dump(wordwrap($str,17));
结果为:string 'An example on a long word is:
Supercalifragulistic' (length=50)
str_shuffle() 随机打乱字符串中所有字符
echo str_shuffle('hello world'); //ewllorod hl
parse_str() 将字符串解析成变量 要解析的字符串|存储变量的数组名称
parse_str('id=23&name=john%20adams',$a);
print_r($a); //Array ( [id] => 23 [name] => john adams )
number_format() 通过千分位组来格式化数字 要格式化的数字|规定多少个小数|规定用作小数点的字符串|规定用作千位分隔符的字符串
echo '100000'.'<br>';//100000
echo number_format(100000,2).'<br>'; // 100,000.00
echo number_format(100000,2,',','.'); //100.000,00
/*~~~~~~~~~~~~大小写转换~~~~~~~~~~~~*/
strtolower() 字符串转化为小写
echo strtolower('Hello World'); //hello world
strtoupper() 字符串转化为大写
echo strtoupper('Hello World'); //HELLO WORLD
ucfirst() 字符串首字母大写
echo ucfirst('hello world'); //Hello world
ucwords() 字符串每个单词首字母转化为大写
echo ucwords('hello world'); //Hello World
/*~~~~~~~~~~html标签相关~~~~~~~~~~~~~*/
htmlentities() 把字符转为html实体。可以将所有的非ASCII码转换成对应实体代码。比htmlspecialchars转义的更多。
$str='John & Adams';
var_dump(htmlentities($str)); //string 'John & Adams' (length=16)
htmlspecialchars() 预定义字符转化为html编码。预定义的字符是:&(和号)成为& "(双引号)成为 " '(单引号)成为'<(小于) 成为 <>(大于)成为> ENT_COMPAT:默认,仅编码双引号。ENT_QUOTES:编码双引号和单引号。ENT_NOQUOTES:不编码任何引号。
$str="Jo<h>n & 'Ad'ams";
var_dump(htmlspecialchars($str)).'<br>'; //string 'Jo<h>n & 'Ad'ams' (length=26)
var_dump(htmlspecialchars($str,ENT_QUOTES)).'<br>';//string 'Jo<h>n & 'Ad'ams' (length=36)//nl2br() \n转义为<br>标签 请使用双引号,单引号不解析\n 标签
echo nl2br("wa\nngde\nbao");
/*wa
ngde
bao*/
strip_tags() 剥去html、xml以及PHP的标签
echo strip_tags("hello <b>world</b>"); //hello world
addcslashes() 在指定的字符前添加反斜线转义字符串中的字符
$str="hello,my name is 'John'";
echo $str.'<br>';//hello,my name is 'John'
echo addcslashes($str,'m').'<br>'; //hello,\my na\me is 'John'
stripcslashes() 删除由addcslashes()添加的反斜线
echo stripcslashes("hello,\m\y na\me i\s 'John'").'<br>'; //hello,my name is 'John'
addslashes() 指定预定义字符前添加反斜线
echo addslashes("hello,my name is 'John'"); //hello,my name is \'John\'
stripslashes() 删除由addslashes() 添加的转义字符
echo stripslashes("hello,my name is \'John\'"); //hello,my name is 'John'
//echo stripslashes("hello,my name is \'John\',hello,\m\y na\me i\s 'John'");删除反斜线和删除转义字符的的功能基本相同,一般情况下也可以通用,不过最好按照规则来使用!
quotemeta() 在字符串中某些预定义的字符前添加反斜线!注意:.和?能被添加反斜线,,不能被添加反斜线!
$str="hello world.do you like me?";
echo quotemeta($str); //hello world\.do you like me\?
chr() 从指定的ASCII 值返回字符
echo chr(50); / 2
ord() 返回字符串第一个字符的ASCII值
echo ord('hello'); // 104
/*~~~~~~~~~~~~字符串比较~~~~~~~~~~~~~~*/
/*字符串比较统一说明:字符串匹配,先比较第一个,如果第一个不相同,比较大小,并终止后面的比较,如果第一个相同,则跳过此字符继续比较。直到遇到不同的字符为止!*/
strcmp() 区分大小写比较两字符串 注意:区分大小写的比较函数,其输出值与所对应的ASCII值无关,只比较大小写和字符串长度,小写字母大于大写字母,例如a>A,如果前面所有的字符都一样,包括大小写,长度也相同,则输出结果为0.如果长度不相同,则长度越大的字符串其所对应的值越大,多出多少个字符(5),则输出多少个数(5)
echo strcmp('0elloooo','0ello').'<br>';// 3
echo strcmp('0ELLOoo','hello').'<br>';// -1
echo strcmp('0ELLO','9ELLO').'<br>';// -1
strcasecmp() 不区分大小写比较两字符串。注意:不区分大小写的比较函数,其往往以字符所对应的ASCII进行比较大小,H与h两个字符所对应的ASCII值以h为标准,比较时,对其所对应的ASCII值进行相减即可,记住:0-9>a-z;
echo strcasecmp('0ellooo','HELLO');// -56
echo strcasecmp('0bllooo','hELLO');// -56
echo strcasecmp('0fllooo','aLLO'); // -49
echo strcasecmp('Lfllooo','HELLO'); // 4
strncmp() 比较字符串前N个字符,区分大小写 注意:其输出值与所对应的ASCII值无关,只比较大小写,小写字母大于大写字母,例如a>A,如果前面所有的字符都一样,则输出结果为0.
echo strncmp('hello world','hello earth',7); // 1
echo strncmp('hello World','hello world',7); // -1
strncasecmp() 比较字符串前n个字符,不区分大小写 注意:在N个字符内,如果出现不同的字符
,则停止继续比较。不区分大小写的比较函数,其往往以字符所对应的ASCII进行比较大小,H与h两个字符所对应的ASCII值以h为标准,比较时,对其所对应的ASCII值进行相减即可,记住:0-9>a-z;
echo strncasecmp('hello world','hello earth',9); // 18
strnatcmp() 自然顺序法比较字符串长度,区分大小写,小写字母大于大写字母,9大于2,长度大的字符串大于长度小的字符串,输出结果只有-1 0 1 三种结果
echo strnatcmp('wangdebao','Wangdebao');// 1
echo strnatcmp('9anbaooo','2wwngdebao');// 1
echo strnatcmp('wangde000','wangde).;// 1
strnatcasecmp() 自然顺序法比较字符串长度,不区分大小写!注意:遇到第一个不同的字符,则停止比较,如果前几个字符都相同,只是字符数量不同,数量多的字符为大!
echo strnatcasecmp('wang0000','wang'); // 1
echo strnatcasecmp('Wangbao','wangbao');// 0
echo strnatcasecmp('1angbao','wangbao');// -1
/*~~~~~~~~~~字符串切割与拼~~~~~~~~~~~~*/
chunk_split() 将字符串分成小块
echo chunk_split('wangdebao',3,' '); //wan gde bao
echo chunk_split('wangdebao',3,'☆'); //wan☆gde☆bao☆
strtok() 切开字符串 注意:只有字符串内有空格的地方才能被切割,否则无法被切割,或者以字符串中存在的符号为切割标志对字符串进行切割!被分割后,只留下前面的一部分,后一部分消失!
echo strtok('wang de bao',' ').'<br>'; //输出结果为:wang
echo strtok('wang de bao','☆').'<br>'; //输出结果为:wang de bao
echo strtok('wangdebao','d').'<br>'; //输出结果为:wang
explode() 使用一个字符串为标志。分割另一个字符串 注意:一般使用空格作为分割符,也可以使用字符串作为分割符,但是分割过后,作为分隔符的字符串就会从对象字符串中消失!有三个参数,后面的数字为最大的数组元素数目!
$a=explode(' ','wang de bao ni hao',4);//Array ( [0] => wang [1] => de [2] => bao [3] => ni hao )
//$a=explode('de','wangdebaonihao',4);//Array ( [0] => wang [1] => baonihao )
print_r($a); //输出结果为:Array ( [0] => wang [1] => de [2] => bao [3] => ni hao )
implode() 同join,将数组值用预定义字符;连接成字符串
echo implode('',$a).'<br>';//wangdebaoni hao
echo implode(' ',$a);//wang de bao ni hao
echo implode('☆',$a).'<br>'; //wang☆de☆bao☆ni hao
substr() 截取字符串 注意:第一个为截取对象,第二个参数为截取起始位置,第三个参数是返回的长度
echo substr('wangdebao',3).'<br>';//gdebao
echo substr('wangdebao',3,3).'<br>';//gde
/*~~~~~~~~~~~字符串查找和替换~~~~~~~~~*/
str_replace() 字符串替换操作,区分大小写
echo str_replace('world','john','hello world'); //hello john
echo str_replace('World','john','hello world'); //hello world
str_ireplace() 字符串替换操作,不区分大小写!
echo str_ireplace('World','john','hello world'); //hello john
substr_count() 统计一个字符串在另一个字符串中出现的次数! 10代表字符串中起始位置
echo substr_count('hello world,this world is nice','world').'<br>';// 2
echo substr_count('hello world,this world is nice','world',10).'<br>';// 1
substr_replace() 替换字符串中某串为另一字符串
echo substr_replace('wangdebao','bao',1); //wbao
echo substr_replace('wangdebao','bao',4); //wangbao
similar_text() 返回两字符串相同字符的数量
echo similar_text('wangdebao','nihao');// 3
strrchr() 返回一个字符串在另一个字符串中最后一次出现位置开始到末尾的字符串
echo strrchr('wangdebadeo','de'); //deo
strstr() 返回一个字符串在另一个字符串中开始位置到结束的字符串
echo strstr('wangdebaowangdebao','wang'); //wangdebaowangdebao
echo strstr('wangdebaowangdebao','de'); //debaowangdebao
strchr() strstr()的别名,返回一个字符串在另一个字符串中首次出现的位置开始到末尾的字符串!
echo strchr('wangdebaodebao','de'); //debaodebao
stristr() 返回一个字符串在另一个字符串中开始位置到结束时的字符串,不区分大小写
echo stristr('wangdebaodeab','De'); //debao
strtr() 转换字符串中的某些字符
echo strtr('wangdebao','de','ed'); //wangedbao
echo strtr('wangdebao','de','eeeee'); //wangeebao
strpos() 寻找字符串中某字符最先出现的位置,区分大小写
echo strpos('wangdebao','de'); // 4【从0计算 0 1 2 3 4】
echo strpos('wangdebao','De'); //空
stripos() 寻找字符串中某字符最先出现的位置,不区分大小写
echo stripos('wangdebao','De'); // 4【从0计算 0 1 2 3 4】
strrpos() 寻找某字符串中某字符最后出现的位置,区分大小写
echo strrpos('wanagdebao','a');// 8
echo strrpos('wanagdebao','A');//空
strripos() 寻找某字符串中某字符最后出现的位置,不区分大小写
echo strripos('wanagdebao','A');// 8
strspn() 返回字符串中首次符合mask的子字符串长度;第3个参数代表开始的位置,第4个参数表示匹配的长度,如果第3个参数的值为2,表示从第二个位置的下一个开始计数,直到遇到与自己不相同的为止,停止计数,如果第4个参数的值为8,表示从计数的位置开始计算,往后查询8个,但是当第3个停止计数时,后面的就不再查询,停止计数!
echo strspn('wellororad','world',2,8); //6【或者理解为从0计算 0 1 2 3 4】
strcspn() 返回字符串中不符合mask的字符串的长度,与上面的规则相同,但是效果相反!
echo strcspn('aelloaorld','world',2,3); //0
/*~~~~~~~~~~~字符串统计~~~~~~~~~~~~~~~*/
str_word_count() 统计字符串中含有的单词数 注意:空格计算
echo str_word_count('wang de bao ni hao ma').'<br>'; // 6
echo str_word_count('hello world'); // 2
echo str_word_count('wangdebao');// 1
strlen() 统计字符串长度
echo strlen('wangdebao');// 9
count_chars() 统计字符串中所有字母出现的次数 1 - 数组,ASCII 值为键名,出现的次数为键值,只列出出现次数大于 0 的值
print_r(count_chars('wangdebao',1)); //输出结果为:Array ( [97] => 2 [98] => 1 [100] => 1 [101] => 1 [103] => 1 [110] => 1 [111] => 1 [119] => 1 )
/*~~~~~~~~~~~~字符串编码~~~~~~~~~~~~~*/
md5() 字符串md5编码
echo md5('').'<br>'; //d41d8cd98f00b204e9800998ecf8427e
echo md5('1').'<br>'; //c4ca4238a0b923820dcc509a6f75849b
echo md5('a').'<br>'; //0cc175b9c0f1b6a831c399e269772661