Blogger Information
Blog 45
fans 3
comment 0
visits 45663
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
PHP常用的字符串处理函数
残破的蛋蛋
Original
1001 people have browsed it

PHP常用的字符串处理函数

1.trim() 去除字符串首尾的空白字符(或其他字符)

  • 语法

trim(string $str, string $char) : string

该函数返回字符串去除空白字符之后的字符串str。

  • 参数

str:待处理的字符串
char:可选参数,要过滤的字符,如果不指定该参数,则默认去除以下字符。

“ “ (ASCII 32 (0x20)),普通空格符。
“\t” (ASCII 9 (0x09)),制表符。
“\n” (ASCII 10 (0x0A)),换行符。
“\r” (ASCII 13 (0x0D)),回车符。
“\0” (ASCII 0 (0x00)),空字节符。
“\x0B” (ASCII 11 (0x0B)),垂直制表符。

  • 返回值

返回字符串去除首尾的空白字符之后的字符串str。

  1. $str = "\t\t\t\tThis is some words. ";
  2. var_dump($str); // string(30) " This is some words. "
  3. echo "<br>";
  4. // 不指定第二个参数
  5. var_dump(trim($str)); // string(19) "This is some words."
  6. echo "<br>";
  7. // 指定第二个参数
  8. $str = "Hello World";
  9. var_dump(trim($str, 'Held')); // string(5) "o Wor"

2.ltrim() 去除字符串开头的空白字符(或其他字符)

  • 语法

ltrim(string $str, string $char) : string

该函数返回字符串去除开头的空白字符之后的字符串str。

  • 参数

str:待处理的字符串
char:可选参数,要过滤的字符,如果不指定该参数,则默认去除以下字符。

“ “ (ASCII 32 (0x20)),普通空格符。
“\t” (ASCII 9 (0x09)),制表符。
“\n” (ASCII 10 (0x0A)),换行符。
“\r” (ASCII 13 (0x0D)),回车符。
“\0” (ASCII 0 (0x00)),空字节符。
“\x0B” (ASCII 11 (0x0B)),垂直制表符。

  • 返回值

返回字符串去除开头的空白字符之后的字符串str。

  1. $str = "\t\t\t\tThis is some words. ";
  2. var_dump($str); // string(25) " This is some words. "
  3. echo "<br>";
  4. // 不指定第二个参数
  5. var_dump(ltrim($str)); // "This is some words. "
  6. echo "<br>";
  7. // 指定第二个参数
  8. $str = "Hello World";
  9. var_dump(ltrim($str, 'Hdel')); // string(7) "o World"

3.rtrim() 去除字符串末端的空白字符(或其他字符)

  • 语法

rtrim(string $str, string $char) : string

  • 参数

str:待处理的字符串
char:可选参数,要过滤的字符,如果不指定该参数,则默认去除以下字符。

“ “ (ASCII 32 (0x20)),普通空格符。
“\t” (ASCII 9 (0x09)),制表符。
“\n” (ASCII 10 (0x0A)),换行符。
“\r” (ASCII 13 (0x0D)),回车符。
“\0” (ASCII 0 (0x00)),空字节符。
“\x0B” (ASCII 11 (0x0B)),垂直制表符。

  • 返回值

返回字符串去除末端的空白字符之后的字符串str。

  1. $str = "\t\t\t\tThis is some words. ";
  2. var_dump($str); // string(25) " This is some words. "
  3. echo "<br>";
  4. // 不指定第二个参数
  5. var_dump(rtrim($str)); // " This is some words."
  6. echo "<br>";
  7. // 指定第二个参数
  8. $str = "Hello World";
  9. var_dump(rtrim($str, 'Hdel')); // string(9) "Hello Wor"

4.lcfirst() 将一哥字符串的第一个字母转成小写

  • 语法

lcfirst(string $str) : string

返回第一个字母小写的str,如果是字母的话。

  • 参数

str:待处理的字符串

  1. $str = "This is some words.";
  2. echo lcfirst($str); // this is some words.

5.number_format() 以千位分隔符方式格式化一个数字

  • 语法

money_format(float $number, int $decimals = 0, string $dec_point = “.”, string $thousands_sep = “,”) : string

注意:该函数可以接受1、2、4个参数,但是绝对不能是3个。
如果只提供第一个参数,number的小数部分会被忽略,并且每个千位分隔符都是英文状态下的逗号“,”。
如果提供两个参数,number将保留小数点后的位数到设定的值,剩下的忽略。
如果提供4个参数,number保留decimals长度的小数部分,小数点被替换成dec_point,千位分隔符会被替换为thousand_sep。

  • 参数

number:待格式化的字符串;

decimals:要保留的小数位数;

dec_point:小数点显示的指定字符;

thousands_sep:指定的千位分隔符

  • 返回值

返回格式化后的字符串number

  • 案例
  1. $number = 1234.56789;
  2. echo number_format($number); // 1,235
  3. echo number_format($number, 2); // 1,234.57
  4. echo number_format($number, 3, '*', '#'); // 1#234*568

6.str_shuffle() 随机打乱一个字符串

  • 语法

str_shuffle(string $str) : string

  • 参数

str传入的字符串

  • 返回值

返回随机打乱的字符串

  • 案例
  1. $str = 'Hello World!';
  2. echo str_shuffle($str);

7.strcmp() 比较两个字符串是否相等

  • 语法

strcmp(string $str1, string $str2) : int

注意:该方法区分大小写。

  • 参数

str1:第一个字符串

str2:第二个字符串

  • 返回值

若str1 < str2 返回-1;若str1 > str2 返回1;若str1与str2相等,返回0。

  • 案例
  1. $str1 = 'Hello World, A!';
  2. $str2 = 'Hello World!';
  3. var_dump(strcmp($str1, $str2)); // int(1)

8.strcasecmp() 比较两个字符串是否相等

  • 语法

strcasecmp(string $str1, string $str2) : int

注意:该方法不区分大小写。

  • 参数

str1:第一个字符串

str2:第二个字符串

  • 返回值

若str1 < str2 返回-1;若str1 > str2 返回1;若str1与str2相等,返回0。

  • 案例
  1. $str1 = 'hello world!';
  2. $str2 = 'Hello World!';
  3. var_dump(strcasecmp($str1, $str2)); // int(0)

9.strncmp() 比较两个字符串开头的若干个字符

  • 语法

strncmp(string $str1, string $str2, int $length) : int

注意:该方法与strcmp()很相似,不同的地方在于可以指定两个字符串比较时候使用的长度,该方法区分大小写。

  • 参数

str1:第一个字符串

str2:第二个字符串

length:最大比较长度

  • 返回值

若str1 < str2 返回-1;若str1 > str2 返回1;若str1与str2相等,返回0。

  • 案例
  1. $str1 = 'php.cn';
  2. $str2 = 'php.net';
  3. var_dump(strncmp($str1, $str2, 5)); // int(-1)

10.strncasecmp() 比较两个字符串开头的若干个字符

  • 语法

strncmp(string $str1, string $str2, int $length) : int

注意:该方法与strcasecmp()很相似,该方法不区分大小写。

  • 参数

str1:第一个字符串

str2:第二个字符串

length:最大比较长度

  • 返回值

若str1 < str2 返回-1;若str1 > str2 返回1;若str1与str2相等,返回0。

  • 案例
  1. $str1 = 'php.cn';
  2. $str2 = 'PHP.net';
  3. var_dump(strncasecmp($str1, $str2, 3)); // int(0)

11.strlen() 获取一个字符串的长度

  • 语法

strlen(string $str) : int

  • 参数

str:需要计算长度的字符串

  • 返回值

成功则返回字符串 str 的长度;如果 string 为空,则返回 0。

  • 案例
  1. $str = 'php.cn';
  2. var_dump(strlen($str)); // int(6)
  3. $str = '';
  4. var_dump(strlen($str)); // int(0)

13.strtok() 标记分割字符串

  • 语法

strtok(string $str, string $token) : string

  • 参数

str:要被分割的原始字符串。

token:分割str时使用的分界字符。

  • 返回值

返回标记后的字符串。

  • 案例
  1. $str = 'This is a strpbrk function explain.';
  2. var_dump(strtok($str, " ")); // string(27) "a strpbrk function explain."
  3. var_dump(strtok(" ")); // string(4) "This"
  4. var_dump(strtok(" ")); // string(2) "is"
  5. var_dump(strtok(" ")); // string(7) "strpbrk"
  6. var_dump(strtok(" ")); // string(8) "function"
  7. var_dump(strtok(" ")); // string(8) "explain."

14.strtolower() 将字符串转换成小写

  • 语法

strtolower(string $str) : string

  • 参数

str:需要转换的字符串。

  • 返回值

返回转换后的小写字符串。

  • 案例
  1. $str = 'This is a strpbrk Function explain.';
  2. var_dump(strtolower($str)); // string(35) "this is a strpbrk function explain."

15.strtoupper() 将字符串转换成大写

  • 语法

strtolower(string $str) : string

  • 参数

str:需要转换的字符串。

  • 返回值

返回转换后的大写字符串。

  • 案例
  1. $str = 'This is a strpbrk Function explain.';
  2. var_dump(strtoupper($str)); // string(35) "THIS IS A STRPBRK FUNCTION EXPLAIN."

16.ucfirst() 将字符串转换成大写

  • 语法

ucfirst(string $str) : string

  • 参数

str:需要转换的字符串。

  • 返回值

返回将首字母转换成大些的字符串。

  • 案例
  1. $str = 'hello world';
  2. var_dump(ucfirst($str)); // string(11) "Hello world"

17.ucwords() 将字符串中每个单词的首字母转换成大写

  • 语法

ucfirst(string $str, string $delimiters = “\t\r\n\f\v”) : string

  • 参数

str:需要转换的字符串。
delimiters:可选参数,包含了分割符。

  • 返回值

返回转换后的字符串。

  • 案例
  1. $str = 'this is a strpbrk Function explain.';
  2. var_dump(ucwords($str)); // string(11) "This Is A Strpbrk Function Explain."
  3. // 第二个参数还可以指定参数
  4. $str = 'hello@world';
  5. var_dump(ucwords($str, '@')); // string(11) Hello@World

18.crypt() 单项字符串散列

  • 语法

crypt(string $str, string $salt = ?) : string

  • 参数

str:需要散列的字符串。
delimiters:可选参数,加盐字符串。

  • 返回值

返回散列后的字符串或一个少于 13 字符的字符串,从而保证在失败时与盐值区分开来。

注意:从PHP5.6以后,需要明确指出第二个参数,否则会报警告错误。

  • 案例
  1. $password = crypt('mypassword', 'dandan2');
  2. var_dump($password); // string(13) "daD/sEXM9gGX."

19.strrev() 反转字符串

  • 语法

strrev(string $str) : string

  • 参数

str:需要反转的字符串。

  • 返回值

返回反转之后的字符串。

  • 案例
  1. $str = 'Hello World!';
  2. var_dump(strrev($str)); // string(12) "!dlroW olleH"

20.stripslashes() 反引用一个引用字符串

  • 语法

stripslashes(string $str) : string

  • 参数

str:传入的字符串。

  • 返回值

返回一个去除转义斜线后的字符串。

  • 案例
  1. $str = 'This is a \'stripslashes\' Function';
  2. var_dump(stripslashes($str)); // string(33) "This is a 'stripslashes' Function"

21.addslashes() 使用反斜线引用字符串

  • 语法

addslashes(string $str) : string

  • 参数

str:要转义的字符串。

  • 返回值

返回一个转义后的字符串。

  • 案例
  1. $str = "SELECT * FROM 'user' WHERE 'id' = 1";
  2. var_dump(addslashes($str)); // string(39) "SELECT * FROM \'user\' WHERE \'id\' = 1"

22.addcslashes() 以C语言风格使用反斜线转义字符串中的字符

  • 语法

addcslashes(string $str, string char) : string

  • 参数

str:要转义的字符串。

char:如果 char 中包含有 \n,\r 等字符,将以 C 语言风格转换,而其它非字母数字且 ASCII 码低于 32 以及高于 126 的字符均转换成使用八进制表示。
当定义 char 参数中的字符序列时,需要确实知道介于自己设置的开始及结束范围之内的都是些什么字符。

  • 返回值

返回一个转义后的字符串。

  • 案例
  1. $str = "Abcdef";
  2. var_dump(addcslashes($str, 'A...c')); // string(9) "\A\b\cdef"

23.strip_tags() 从字符串中去除HTML和PHP标记

  • 语法

strip_tags(string $str, string $allowable_tags) : string

  • 参数

str:需要过滤的字符串。

allow_tags:指定不被去除的字符列表。

注意:HTML注释和PHP标签也会被去除,这是硬编码处理的,所以无法通过allowable_tags参数进行修改。

  • 返回值

返回一个处理后的字符串。

  • 案例
  1. $str = "<p>This is first paragraph.</p><!-- commont --><a>This is second paragraph.</a>";
  2. var_dump(strip_tags($str)); // string(49) "This is first paragraph.This is second paragraph."
  3. // 保留p标签和a标签
  4. var_dump(strip_tags($str, '<p>')); // string(56) <p>This is first paragraph.</p>This is second paragraph.
Correcting teacher:天蓬老师天蓬老师

Correction status:qualified

Teacher's comments:
Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post