PHP的String函数笔记

世界上有一种生命,它的每一次死亡,都是为了归来!

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()

在特定的位置加上斜杠。包括:

  1. 单引号(’)
  2. 双引号(”)
  3. 反斜杠(\)
  4. 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
坚持原创技术分享,您的支持将鼓励我继续创作!
------ 本文结束 ------

版权声明

LangZi_Blog's by Jy Xie is licensed under a Creative Commons BY-NC-ND 4.0 International License
由浪子LangZi创作并维护的Langzi_Blog's博客采用创作共用保留署名-非商业-禁止演绎4.0国际许可证
本文首发于Langzi_Blog's 博客( http://langzi.fun ),版权所有,侵权必究。

0%