php字符串函数(三)
一、trim、ltrim和rtrim
trim() 函数从字符串的两端删除空白字符和其他预定义字符。string trim ( $str [, $charlist = ” tnr x0B” ] )
参数 | 描述 |
---|---|
string | 必需。规定要检查的字符串。 |
charlist | 可选。规定从字符串中删除哪些字符。如果被省略,则移除以下所有字符: – “\0” – NULL – “\t” – 制表符 – “\n” – 换行 – “\x0B” – 垂直制表符 – “\r” – 回车 – ” ” – 空格 |
示例1:
1// Remove numerals and space from the beginning of the line
2print ltrim('10 PRINT A$',' 0..9');
3// Remove semicolon from the end of the line
4print rtrim('SELECT * FROM turtles;',';');
5输出结果:
6PRINT A$
7ELECT * FROM turtles
示例2:
1<?php
2function trim_value(&$value)
3{
4 $value = trim($value);
5}
6$fruit = array('apple','banana ', ' cranberry ');
7var_dump($fruit);
8array_walk($fruit, 'trim_value');
9var_dump($fruit);
10?>
同样,ltrim()和rtrim()两个函数的用法和trim()的用法一样,不同的是,ltrim() – 删除字符串开头的空白字符(或其他字符),rtrim() – 删除字符串末端的空白字符(或者其他字符)。
注:功能类似的还有str_replace() - 子字符串替换函数。
二、strcoll、strcmp、substr_compare
1、strcoll、strcmp两个函数都用于字符串的比较。语法也相同 strcoll(string1,string2) 和 strcmp(string1,string2) 。
2、两个函数的返回值也相同,如果两个字符串相等返回0 , 如果 string1 小于 string2返回< 0 , 如果 string1 大于 string2 则返回 >0 。
3、两个函数对比时都对大小写敏感 。
4、两都不同的是,strcoll函数不是二进制安全的。strcoll()会依环境变量LC_COLLATE所指定的文字排列次序来比较字符串,而strcmp是根据ASCII来比较字符串。 若LC_COLLATE为”POSIX”或”C”,则strcoll()与strcmp()作用完全相同。
例1:
1<?php
2setlocale (LC_COLLATE, 'NL');
3echo strcoll("Hello World!","Hello WORLD!");
4echo "<br />";
5setlocale (LC_COLLATE, 'en_US');
6echo strcoll("Hello World!","Hello WORLD!");
7?>
8输出
9-1
101
例2:
1<?php
2echo strcmp("Hello world!","Hello world!");
3?>
4输出 0
参数 | 描述 |
---|---|
string1 | 必需。规定要比较的第一个字符串。 |
string2 | 必需。规定要比较的第二个字符串。 |
startpos | 可选。规定在 string1 中的何处开始比较。 |
length | 可选。规定在 string1 中参与比较的字符数。 |
case | 可选。规定是否指定大小写比较。默认是 FALSE (对大小写敏感)。 |
示例:
1<?php
2echo substr_compare("abcde", "bc", 1, 2); // 0
3echo substr_compare("abcde", "de", -2, 2); // 0
4echo substr_compare("abcde", "bcg", 1, 2); // 0
5echo substr_compare("abcde", "BC", 1, 2, true); // 0
6echo substr_compare("abcde", "bc", 1, 3); // 1
7echo substr_compare("abcde", "cd", 1, 2); // -1
8echo substr_compare("abcde", "abc", 5, 1); // warning
9?>
三、htmlentities、html_entity_decode、htmlspecialchars、htmlspecialchars_decode、strip_tags
先比较一下几者的功能,以免越看越糊涂。
htmlentities() 函数把字符转换为 HTML 实体,html_entity_decode() 函数把 HTML 实体转换为字符。所以html_entity_decode() 是 htmlentities() 的反函数。
htmlspecialchars() 函数把一些预定义的字符转换为 HTML 实体,htmlspecialchars_decode() 函数把一些预定义的 HTML 实体转换为字符。两者之间也是反函数。
strip_tags() 函数是用来剥去 HTML、XML 以及 PHP 的标签。
1、htmlentities、html_entity_decode
htmlentities / html_entity_decode(string,quotestyle,character-set)
具体的参数含义如下:
参数 | 描述 |
---|---|
string | 必需。规定要转换的字符串。 |
quotestyle | 可选。规定如何编码单引号和双引号。ENT_COMPAT – 默认。仅编码双引号。ENT_QUOTES – 编码双引号和单引号。ENT_NOQUOTES – 不编码任何引号。 |
character-set | 可选。字符串值,规定要使用的字符集。 ISO-8859-1 – 默认。西欧。无法被识别的字符集将被忽略,并由 ISO-8859-1 代替。 ISO-8859-15 – 西欧(增加 Euro 符号以及法语、芬兰语字母)。 UTF-8 – ASCII 兼容多字节 8 比特 Unicodecp866 – DOS 专用 Cyrillic 字符集 cp1251 – Windows 专用 Cyrillic 字符集 cp1252 – Windows 专用西欧字符集 KOI8-R – 俄语 GB2312 – 简体中文,国家标准字符集 BIG5 – 繁体中文 BIG5-HKSCS – Big5 香港扩展 Shift_JIS – 日语 EUC-JP – 日语 |
注:以上quotestyle里的可选参数并未列举完,只列出了三个常用的。其他参数请看官方文档。
示例:
1<?php
2$str = "A 'quote' is <b>bold</b>";
3// Outputs: A 'quote' is <b>bold</b>
4echo htmlentities($str);
5// Outputs: A 'quote' is <b>bold</b>
6echo htmlentities($str, ENT_QUOTES);
7?>
8<?php
9$str = "x8F!!!";
10// Outputs an empty string
11echo htmlentities($str, ENT_QUOTES, "UTF-8");
12// Outputs "!!!"
13echo htmlentities($str, ENT_QUOTES | ENT_IGNORE, "UTF-8");
14?>
例2:
1<?php
2$orig = "I'll "walk" the <b>dog</b> now";
3$a = htmlentities($orig);
4$b = html_entity_decode($a);
5echo $a; // I'll "walk" the <b>dog</b> now
6echo $b; // I'll "walk" the <b>dog</b> now
7?>
2、htmlspecialchars和htmlspecialchars_decode
语法结构:
htmlspecialchars_decode / htmlspecialchars(string,quotestyle,character-set)
预定义的会被解码的HTML实体是:
1& 成为 & (和号)
2" 成为 " (双引号)
3' 成为 ' (单引号)
4< 成为 < (小于)
5> 成为 > (大于)
参数:
参数 | 描述 |
---|---|
string | 必需。规定要解码的字符串。 |
quotestyle | 可选。规定如何解码单引号和双引号。 ENT_COMPAT – 默认。仅解码双引号。 ENT_QUOTES – 解码双引号和单引号。 ENT_NOQUOTES – 不解码任何引号。 |
示例:
1<?php
2$new = htmlspecialchars("<a href='test'>Test</a>", ENT_QUOTES);
3echo $new; // <a href='test'>Test</a>
4?>
5<?php
6$str = "<p>this -> "</p>n";
7echo htmlspecialchars_decode($str);
8// 注意,这里的引号不会被转换
9echo htmlspecialchars_decode($str, ENT_NOQUOTES);
10?>
3、strip_tags
语法:strip_tags(string,allow)
参数:
参数 | 描述 |
---|---|
string | 必需。规定要检查的字符串。 |
allow | 可选。规定允许的标签。这些标签不会被删除。 |
注释:该函数始终会剥离 HTML 注释。这点无法通过 allow 参数改变。
1<?php
2$text = '<p>Test paragraph.</p><!-- Comment --> <a href="#fragment">Other text</a>';
3echo strip_tags($text);
4echo "n";
5// 允许 <p> 和 <a>
6echo strip_tags($text, '<p><a>');
7?>
8
9其输出为:
10Test paragraph. Other text
11<p>Test paragraph.</p> <a href="#fragment">Other text</a>
捐赠本站(Donate)
如您感觉文章有用,可扫码捐赠本站!(If the article useful, you can scan the QR code to donate))
- Author: shisekong
- Link: https://blog.361way.com/php-strings-trim-cmp-htmlcode/3022.html
- License: This work is under a 知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议. Kindly fulfill the requirements of the aforementioned License when adapting or creating a derivative of this work.