世界上有一种生命,它的每一次死亡,都是为了归来!
strlen()
返回字符串长度,与Python中的len()一致。
<?php
$str = strlen('langzizhaohanaaaaaaa');
echo $str;
?>
运行结果:
20
addcslashes()
在某个指定的字母前加上斜杠。
<?php
$str='langzi zhao';
$str=addcslashes($str,'z');
echo $str;
?>
运行结果:
lang\zi \zhao
相关函数:
- stripcslashes()删除有addcslashes()生成的斜杠
addslashes()
在特定的位置加上斜杠。包括:
- 单引号(’)
- 双引号(”)
- 反斜杠(\)
- NULL
默认地,PHP 对所有的 GET、POST 和 COOKIE 数据自动运行 addslashes()。所以您不应对已转义过的字符串使用 addslashes(),因为这样会导致双层转义。遇到这种情况时可以使用函数 get_magic_quotes_gpc() 进行检测,也就是最常见的魔术引号手,你在注入的时候如果开启了魔术引号手,那么你提交的单引号之类的都会被转义,这个时候可以使用宽字节注入。
相关函数:
- stripslashes()删除有addslashes()生成的斜杠
bin2hex()
把ASCII字符直接转换成16进值的编码。
<?php
$str = bin2hex("langzi");
echo($str);
?>
运行结果:
6c616e677a69
可以使用pack把结果16进值再转换成ASCII字符
<?php
$str = pack("H*","6c616e677a69");
echo($str);
?>
运行结果:
langzi
注意一定要使用双引号,并且pack需要设置H*。
hex2bin()
和上面的相反
<?php
$str = hex2bin('6c616e677a69');
echo($str);
?>
运行结果:
langzi
chop()
删除右边的空白字符或者自定义字母,有点像Python的strip(),但是又带了点replace()的意思。
<?php
$str = chop('langzi','aiaa');
echo($str);
?>
运行结果:
langz
这里注意一下,PHP当中和Python不一样,Python的格式是先要删除的字符然后后面是字符串本体。在PHP当中先是字符串本体,然后是要删除的字符串,并且可以包含多个逐一删除。
trim()
删除字符串两边空白字符或者自定义的字符。
<?php
$str = trim('langzi zhaohan','lan');
echo($str);
?>
运行结果:
gzi zhaoh
相关函数:
- ltrim() - 移除字符串左侧的空白字符或其他预定义字符
- rtrim() - 移除字符串右侧的空白字符或其他预定义字符
strtr()
和Python中的replace用法完全一致,除了格式上略有区别。
<?php
$str = strtr('langzi','zi','zhaohan');
echo($str);
?>
运行结果:
langzhaohan
直接把zi替换成zhaohan,就像Python中一样。
substr_replace()
替换字符串,与Python一样,但是替换方法有很大的区别
<?php
$str = substr_replace('langzi lala 5!','hanzhao',5);
echo($str);
?>
参数里面,第一个是原始字符串,第二个是要替换成的字符串,第三个数字是从原始字符串的哪个位置开始替换。
如果你只想从第五个字符开始替换,并且只替换两个长度的字符,可以这么写:
$str = substr_replace('langzi lala 5!','hanzhao',5,2);
substr()
有点类似Python列表的索引选择,可以选择第几个字符开始的字符串,或者选定一个范围之类的字符串。
<?php
$str = substr('langzi 2222 zhaohan','1').'<br>';
echo($str);
$str = substr('langzi 2222 zhaohan','5').'<br>';
echo($str);
$str = substr('langzi 2222 zhaohan','-5').'<br>';
echo($str);
$str = substr('langzi 2222 zhaohan',1,5).'<br>';
echo($str);
$str = substr('langzi 2222 zhaohan',5,15).'<br>';
echo($str);
?>
和上面的一样,可以选择字符串的范围。
相关函数:
str_ireplace()
str_ireplace(“WORLD”,”Shanghai”,”Hello world!”);把shanghai替换成hello word
str_replace() 函数
str_replace(“world”,”Shanghai”,”Hello world!”);和上面一样,但是大小写敏感。
str_repeat()
str_repeat(“Shanghai”,5);重复输出shanghai5次
strrev()
反转字符串,和Python列表的reversed效果一样,但是是反转字符串。
<?php
$str = strrev('hanzhaolikelangzi?sure');
echo($str);
?>
运行结果:
erus?izgnalekiloahznah
ucfirst()
把字符串的首字母变成大写。
<?php
$str = ucfirst('llllangzi hhhhshuai');
echo($str);
?>
运行结果:
Llllangzi hhhhshuai
ucwords()
把每个字符串开头的字母转换成大写。
<?php
$str = ucwords('llllangzi hhhhshuai');
echo($str);
?>
运行结果:
Llllangzi Hhhhshuai
相关函数:
- lcfirst() 函数把字符串中的首字符转换为小写。
- strtolower() - 把字符串转换为小写
- strtoupper() - 把字符串转换为大写
- ucfirst() - 把字符串中的首字符转换为大写
- ucwords() - 把字符串中每个单词的首字符转换为大写
chunk_split()
按照自定义间隔分割字符串,还可以在每个分割后的字符串后面加上自定义的字符。
<?php
$str = chunk_split('langzi zhaohan 666','2','--');
echo($str);
?>
运行结果:
la--ng--zi-- z--ha--oh--an-- 6--66--
其中2是每2个字符切割一次,--就是每次切割后加上--符号,可以设置成空。
str_split()
把字符串分割长数组,就像Python中的split功能差不多。
<?php
print_r(str_split("Shanghai",3));
?>
运行结果:
Array ( [0] => Sha [1] => ngh [2] => ai )
convent_uuencode()
对字符串uuencode 编码呗~
<?php
$str = convert_uuencode('langzi');
echo($str);
?>
运行结果:
&;&%N9WII `
convent_uudecode()
对字符串uuencode 解码呗~
<?php
$str = convert_uudecode('&;&%N9WII `');
echo($str);
?>
运行结果:
langzi
explode()
把字符串变成数组,这个就像Python的字典变成JSON一样,不过只是像并非性质一样。
<?php
$str = 'one,two,three,four';
// 零 limit
print_r(explode(',',$str,0));
// 正的 limit
print_r(explode(',',$str,2));
// 负的 limit
print_r(explode(',',$str,-1));
?>
运行结果:
Array ( [0] => one,two,three,four ) Array ( [0] => one [1] => two,three,four ) Array ( [0] => one [1] => two [2] => three )
implode()
把数组元素变成字符串。
<?php
$arr = array('Hello','World!','I','love','Shanghai!');
echo implode(" ",$arr)."<br>";
echo implode("+",$arr)."<br>";
echo implode("-",$arr)."<br>";
echo implode("X",$arr);
?>
运行结果:
Hello World! I love Shanghai!
Hello+World!+I+love+Shanghai!
Hello-World!-I-love-Shanghai!
HelloXWorld!XIXloveXShanghai!
md5()
md5加密,就像Python中的hashlib一样,使用方法也很简单。
<?php
$str = md5('langzi');
echo $str;
?>
运行结果:
1f39efed68efce4ab4130f0c665a2f04
计算文件的md5值使用md5_file()。
str_shuffle()
随机打乱字符串的排序,有点像Python的random.shuffer()作用。
<?php
$str = str_shuffle('langzi');
echo $str;
?>
运行结果:
ignzal
strcmp()
比较字符串内容是否一致,是返回0否返回-1,对大小写敏感。
<?php
$str = strcmp('langzi','zhaohan');
echo $str;
?>
运行结果:
-1
stripos()
返回一个字符串在另一个字符串出现的位置。
<?php
echo stripos("You love php, I love php too!","PHP");
?>
运行结果:
9
相关函数:
stristr()
查找 “world” 在 “Hello world!” 中的第一次出现,并返回字符串的剩余部分:echo stristr(“Hello world!”,”WORLD”);
strspn()
返回在字符串中包含的特定字符的数目。
<?php
echo strspn("abcdefand","abc");
?>
运行结果:
3