php内置函数,字符串处理函数

来源:互联网 发布:淘宝客佣金计算规范 编辑:程序博客网 时间:2024/06/05 12:44

Question:为什么需要内置函数?
Answer:内置函数都是直接编译在解析器里面,执行速度很快,开发过程中优先使用内置函数.

我们需要掌握的技能:学会查手册,然后记住一些常用的函数,至少5-10个.
面试可能会问到的问题:请写出5-10个字符串处理函数?

下面介绍一下常用的字符串处理函数:
1–添加反斜线 addslashes

$a = “I’m a girl”;

echo addslashes($a);

打印结果:

//I\'m a man

2–分割字符串 explode

$str = “红烧肉|红烧鱼|小青菜”;

menu=explode("|",str);

print_r($menu);

打印结果:

Array ( [0] => 红烧肉 [1] => 红烧鱼 [2] => 小青菜 )

3–将数组转化成字符串 implode

$str = “红烧肉|红烧鱼|小青菜”;

menu=explode("|",str);

echo implode(“|”,$menu);

打印结果:

红烧肉|红烧鱼|小青菜

4–对html的字符进行转化为实体字符 htmlspecialchars

$str = htmlspecialchars("<a href=\"\">链接</a>");

echo $str;

打印结果:

<a href="">链接</a>

5–去除字符串首尾的特定字符,默认是空白字符 trim
–去除字符串最左侧的特定字符,默认是空白字符 ltrim
–去除字符串最右侧的特定字符,默认是空白字符 rtrim

$str = “|abcd|”;

echo trim($str,”|”);

打印结果:

abcd

6–字符串长度 strlen
–注:utf-8一个汉字三个字节

$str = “abcd我”;

echo strlen($str);

打印结果:

7

7–查找字符串首次出现的位置 strpos
–索引是从0开始的

$str = “abcdefg”;//索引是从0开始

echo strpos($str,”c”);

打印结果:

2

面试可考题eg:

if (strpos($str,”a”) === 0) {

echo “包含a”;

} ELSE {

echo “不包含a”;

}

打印结果:

包含a

8–md5
—md5是一种加密算法,它可以将任意的信息转化成固定长度的散列字符串32位
—经常用在密码加密

$password = “1111123456”;

$password2 = “11111123455”;

$savepassword = md5($password);

echo $savepassword;

echo md5($password2);

打印结果:

a84c6058cea999b0a737b38e43437fe68
91706a33eb02653fde44424bf8ee687d

9–sha1

$password = “1111123456”;

$password2 = “11111123455”;

打印结果:

914e0de1c1f3977d3fd9e9ace618d528aee149d4
82721edfaccfca120b81b78bd18ddca7121094b4

10–字符串截取 substr
—不能用于多字节字符,比如汉字

$string = “abcdefg”;

echo substr($string,2,2);

echo substr($string,-5,2);

echo substr($string,2,-2);

echo substr($string,-5,5);

echo substr($string,-5,-3);

打印结果:

cd 正数从下标为2开始截取,截取2个,包括下标2
cd 倒数5个,下标从1开始,正着数2
de 倒着留2个,截取2个
cdefg 倒数5个,正着截取5个
cd 倒着数5个,后面留3

11–字符串替换 str_replace

$string = “abcdeee”;

echo str_replace(“e”,”f”,$string);

echo str_replace(array(“a”,”e”),”f”,$string);

打印结果:

abcdfff //将e换成f
fbcdfff //使用数组将字母a , e替换成f

12–输出一个或者多个字符串及其参数 echo
—echo无返回值,执行效率比print高(printf);

$i = “小杰杰哇”;

echo “false”;

echo “$i”;

打印结果:

false
小杰杰哇

13–输出字符串 print
—有返回值,总是返回1;

print(“hello world”);

$strStr = “字符串字符串”;

打印结果:

hello world
字符串字符串

14–输出格式化字符串 printf
—有返回值,返回输出字符串的长度

$s = “monkey”;

printf(“[%s]\n”, $s);

printf(“[%’#10s]\n”, $s);

打印结果:

[monkey]
[####monkey]

面试可能会考问题:
Question : print 与 echo 之间的区别?
Answer : 区别:
print : 输出字符串 / 有返回值 / 返回值总是返回1;
echo : 输出一个或者多个字符串及其参数 / 无返回值 /执行效率比print高;

后续未完,请继续关注,Thanks!☺