Maison >développement back-end >tutoriel php >PHP学习系列(1)——字符串处理函数(4),php函数_PHP教程
16、hebrevc() 函数把希伯来文本从右至左的流转换为左至右的流。它也会把新行 (\n) 转换为
。只有 224 至 251 之间的 ASCII 字符,以及标点符号受到影响。
17、htmlspecialchars() 函数把一些预定义的字符转换为 HTML 实体。
预定义的字符是:
quotestyle——可选。规定如何编码单引号和双引号。
character-set——可选。字符串值,规定要使用的字符集。
<span><</span><span>html</span><span>></span> <span><</span><span>body</span><span>></span> <span><?</span><span>php $str = "John & 'Adams'"; echo htmlspecialchars($str, ENT_COMPAT); echo "<br />"; echo htmlspecialchars($str, ENT_QUOTES); echo "<br />"; echo htmlspecialchars($str, ENT_NOQUOTES); </span><span>?></span> <span></</span><span>body</span><span>></span> <span></</span><span>html</span><span>></span>
浏览器输出:
John & 'Adams' John & 'Adams' John & 'Adams'
如果在浏览器中查看源代码,会看到这些 HTML:
<span><</span><span>html</span><span>></span> <span><</span><span>body</span><span>></span><span> John </span><span>&</span> 'Adams'<span><</span><span>br </span><span>/></span><span> John </span><span>&</span> 'Adams'<span><</span><span>br </span><span>/></span><span> John </span><span>&</span><span> 'Adams' </span><span></</span><span>body</span><span>></span> <span></</span><span>html</span><span>></span>
18、htmlspecialchars_decode() 函数把一些预定义的 HTML 实体转换为字符,是htmlspecialchars() 的反函数。
语法:htmlspecialchars_decode(string,quotestyle)
quotestyle的具体含义同htmlspecialchars()。
19、implode() 函数把数组元素组合为一个字符串。
array——必需。要结合为字符串的数组。
<?<span>php </span><span>$arr</span> = <span>array</span>('Hello','World!','Beautiful','Day!'<span>); </span><span>echo</span> <span>implode</span>(" ",<span>$arr</span><span>); </span>?>
输出:
Hello World! Beautiful Day!
20、join() 函数把数组元素组合为一个字符串。join() 函数是 implode() 函数的别名。
21、levenshtein() 函数返回两个字符串之间的 Levenshtein 距离。
Levenshtein 距离,又称编辑距离,指的是两个字符串之间,由一个转换成另一个所需的最少编辑操作次数。许可的编辑操作包括将一个字符替换成另一个字符,插入一个字符,删除一个字符。
例如把 kitten 转换为 sitting:
levenshtein() 函数给每个操作(替换、插入和删除)相同的权重。不过,您可以通过设置可选的 insert、replace、delete 参数,来定义每个操作的代价。
参数 | 描述 |
---|---|
string1 | 必需。要对比的第一个字符串。 |
string2 | 必需。要对比的第二个字符串。 |
insert | 可选。插入一个字符的代价。默认是 1。 |
replace | 可选。替换一个字符的代价。默认是 1。 |
delete | 可选。删除一个字符的代价。默认是 1。 |
注意:
如果其中一个字符串超过 255 个字符,levenshtein() 函数返回 -1。levenshtein() 函数对大小写不敏感。levenshtein() 函数比 similar_text() 函数更快。不过,similar_text() 函数提供需要更少修改的更精确的结果。
<?<span>php </span><span>echo</span> <span>levenshtein</span>("Hello World","ello World"<span>); </span><span>echo</span> "<br />"<span>; </span><span>echo</span> <span>levenshtein</span>("Hello World","ello World",10,20,30<span>); </span>?>
输出:
1 30
22、localeconv() 函数返回包含本地数字及货币信息格式的数组。
23、ltrim() 函数从字符串左侧删除空格或其他预定义字符。功能类似于chop()或者rtrim();
24、md5() 函数计算字符串的 MD5 散列。md5() 函数使用 RSA 数据安全,包括 MD5 报文摘译算法。如果成功,则返回所计算的 MD5 散列,如果失败,则返回 false。
raw——可选。规定十六进制或二进制输出格式:
注释:该参数是 PHP 5.0 中添加的。
25、md5_file() 函数计算文件的 MD5 散列。md5() 函数使用 RSA 数据安全,包括 MD5 报文摘译算法。如果成功,则返回所计算的 MD5 散列,如果失败,则返回 false。
<?<span>php </span><span>$filename</span> = "test.txt"<span>; </span><span>$md5file</span> = <span>md5_file</span>(<span>$filename</span><span>); </span><span>echo</span> <span>$md5file</span><span>; </span>?>
输出:
5d41402abc4b2a76b9719d911017c592
26、metaphone() 函数计算字符串的 metaphone 键。metaphone 键字符串的英语发音。metaphone() 函数可用于拼写检查应用程序。
如果成功,则返回字符串的 metaphone 键,如果失败,则返回 false。
length——可选。规定 metaphone 键的最大长度。
<?<span>php </span><span>echo</span> <span>metaphone</span>("world"<span>); </span>?>
输出:
WRLT
在本例中,我们对两个发音相似的单词应用 metaphone() 函数:
<?<span>php </span><span>$str</span> = "Sun"<span>; </span><span>$str2</span> = "Son"<span>; </span><span>echo</span> <span>metaphone</span>(<span>$str</span><span>); </span><span>echo</span> <span>metaphone</span>(<span>$str2</span><span>); </span>?>
输出:
SN SN
27、money_format() 函数把字符串格式化为货币字符串。
国际 en_US 格式:
<?<span>php </span><span>$number</span> = 1234.56<span>; </span><span>setlocale</span>(LC_MONETARY, "en_US"<span>); </span><span>echo</span> money_format("The price is %i", <span>$number</span><span>); </span>?>
输出:
The price is USD 1,234.56
负数,带有 () 指示负数的 US 国际格式,右侧精度为 2,"*" 为填充字符:
<?<span>php </span><span>$number</span> = -1234.5672<span>; </span><span>echo</span> money_format("%=*(#10.2n", <span>$number</span><span>); </span>?>
输出:
($********1,234.57)
28、nl_langinfo() 函数返回指定的本地信息。
如果成功,则返回指定的本地信息。如果失败,则返回 false。
element——必需。规定要返回哪个元素。必须是说明中列出的元素之一。
时间和日历:
货币类别:
数字类别:
通信类别:
代码集类别:
注释:money_format() 函数无法在 windows 平台上工作。
提示:与返回所有本地格式化信息的 localeconv() 函数不同,nl_langinfo() 返回指定的信息。
29、nl2br() 函数在字符串中的每个新行 (\n) 之前插入 HTML 换行符 (
)。
<?<span>php </span><span>echo</span> <span>nl2br</span>("One line.\nAnother line."<span>); </span>?>
输出:
One line. Another line.
HTML 代码:
One line.<span><</span><span>br </span><span>/></span><span> Another line.</span>30、number_format() 函数通过千位分组来格式化数字。
number——必需。要格式化的数字。如果未设置其他参数,则数字会被格式化为不带小数点且以逗号 (,) 作为分隔符。
decimals——可选。规定多少个小数。如果设置了该参数,则使用点号 (.) 作为小数点来格式化数字。
decimalpoint——可选。规定用作小数点的字符串。
separator——可选。规定用作千位分隔符的字符串。仅使用该参数的第一个字符。比如 "xyz" 仅输出 "x"。注释:如果设置了该参数,那么所有其他参数都是必需的。
<span><?</span><span>php echo number_format("1000000"); echo number_format("1000000",2); echo number_format("1000000",2,",","."); </span><span>?></span>
输出:
1,000,000 1,000,000.00 1.000.000,00
大家通过对PHP的学习,可以运用这一高级语言创建一个性能较高的网站。对于初学者来说,对于PHP字符串mbstring还是比较陌生的,下面我们就来介绍一下PHP字符串mbstring的具体应用。
多国语言并存就意味着多字节,PHP内置的字符串长度函数strlen无法正确处理中文字符串,它得到的只是字符串所占的字节数。对于GB2312的中文编码,strlen得到的值是汉字个数的2倍,而对于UTF-8编码的中文,就是1~3倍的差异了。
采用PHP字符串mbstring可以较好地解决这个问题。mb_strlen的用法和strlen类似,只不过它有第二个可选参数用于指定字符编码。例如得到UTF-8的字符串$str长度,可以用mb_strlen($str,’UTF-8′)。如果省略第二个参数,则会使用PHP的内部编码。内部编码可以通过mb_internal_encoding()函数得到,设置有两种方式:
1. 在php.ini中设置mbstring.internal_encoding = UTF-8
2. 调用mb_internal_encoding(”GBK”)
除了PHP字符串mbstring,还有很多切割函数,其中mb_substr是按字来切分字符,而mb_strcut是按字节来切分字符,但是都不会产生半个字符的现象。而且从函数切割对长度的作用也不同,mb_strcut的切割条件是小于strlen, mb_substr是等于strlen,看下面的例子,
输出如下:
mb_substr:我是一串比较
mb_strcut:我是
需要注意的是,PHP字符串mbstring并不是PHP核心函数,使用前需要确保在php编译模块时加入mbstring的支持:
(1)编译时使用–enable-mbstring
(2)修改/usr/local/lib/php.inc
default_charset = “zh-cn”
mbstring.language = zh-cn
mbstring.internal_encoding =zh-cn
PHP字符串mbstring类库内容比较多,还包括mb_ send_ mail 之类的email处理函数等
addcslashes addslashes bin2hex chop chr chunk_split convert_cyr_string cyrillic
convert_uudecode convert_uuencode count_chars crc32 crc32 crypt echo explode
fprintf get_html_translation_table hebrev
hebrevc
hex2bin — Decodes a hexadecimally encoded binary string
html_entity_decode — Convert all HTML entities to their applicable characters
htmlentities — Convert all applicable characters to HTML entities
htmlspecialchars_decode — Convert special HTML entities back to characters
htmlspecialchars — Convert special characters to HTML entities
implode — Join array elements with a string
join
lcfirst — Make a string's first character lowercase
levenshtein — Calculate Levenshtein distance between two strings
localeconv — Get numeric formatting information
ltrim — Strip whitespace (or other characters) from the beginning of a string
md5_file
metaphone — Calculate the metaphone key of a string
money_format — Formats a number as a currency string
nl_langinfo — Query language and locale information
nl2br
number_format — Format a number with grouped thousands
ord
parse_str
print
printf
quoted_printable_decode — Convert a quoted-printable string to an 8 bit string
quoted_printable_encode — Convert a 8 bit string to a quoted-printable string
quotemeta — Quote meta characters
rtrim
setlocale — Set locale information
sha1_file
sha1
soundex — Calculate the soundex key of a string
sprintf — Return a formatted string
sscanf — Parses input from a string according to a ......余下全文>>