php字符串函数
<?php $txt="Hello world!"; echo $txt; ?>
通过上篇对PHP数据类型的简单了解,知道了字符串类型,本篇将介绍在php中常用的字符串函数。
字符串是字符序列,比如 "Hello world!"。
PHP 字符串函数
字符串在php的作用?
字符串变量用于存储并处理文本。
字符串变量用于包含有字符的值。
在创建字符串之后,我们就可以对它进行操作了。您可以直接在函数中使用字符串,或者把它存储在变量中。
在下面的实例中,我们创建一个名为 txt 的字符串变量,并赋值为 "Hello world!" 。然后我们输出 txt 变量的值:
<?php $txt="Hello world!"; echo $txt; ?>
运行结果:
Hello world!
注释:当您赋一个文本值给变量时,请记得给文本值加上单引号或者双引号。
一些常用的操作字符串的函数和运算符。
PHP 并置运算符
在 PHP 中,只有一个字符串运算符。
并置运算符 (.) 用于把两个字符串值连接起来。
下面的实例演示了如何将两个字符串变量连接在一起:
<?php $txt1="Hello world!"; $txt2="What a nice day!"; echo $txt1 . " " . $txt2; ?>
运行结果:
Hello world! What a nice day!
提示:在上面的代码中,我们已经使用了两次并置运算符。这是由于我们需要在两个字符串之间插入一个空格。
1. strlen() 函数
strlen() 函数返回字符串的长度,以字符计。
下例返回字符串 "Hello world!" 的长度:
<?php echo strlen("Hello world!"); ?>
运行结果:
12
提示:strlen() 常用于循环和其他函数,在确定字符串何时结束很重要时。(例如,在循环中,我们也许需要在字符串的最后一个字符之后停止循环)。
2. strpos() 函数
strpos() 函数用于检索字符串内指定的字符或文本。
如果找到匹配,则会返回首个匹配的字符位置。如果未找到匹配,则将返回 FALSE。
下例检索字符串 "Hello world!" 中的文本 "world":
<?php echo strpos("Hello world!","world"); ?>
运行结果:
6
提示:上例中字符串 "world" 的位置是 6。是 6(而不是 7)的理由是,字符串中首字符的位置是 0 而不是 1。
3. addcslashes() //不常用
addcslashes() 函数返回在指定字符前添加反斜杠的字符串。
注释:addcslashes() 函数对大小写敏感。
注释:对以下字符应用 addcslashes() 时请小心:0(NULL), r(回车), n(换行), f 换页)、t(制表符)以及 v(垂直制表符)。在 PHP 中,\0, \r, \n, \t, \f 以及 \v 是预定义的转义序列。
<?php $str = addcslashes("A001 A002 A003","A"); echo($str); ?>
运行结果:
\A001 \A002 \A003
向字符串中的某个范围内的字符添加反斜杠:
<?php $str = "Welcome to Shanghai!"; echo $str."<br>"; echo addcslashes($str,'A..Z')."<br>"; echo addcslashes($str,'a..z')."<br>"; echo addcslashes($str,'a..g'); ?>
运行结果:
Welcome to Shanghai! \Welcome to \Shanghai! W\e\l\c\o\m\e \t\o S\h\a\n\g\h\a\i! W\el\com\e to Sh\an\gh\ai!
4. addslashes() //不常用
addslashes() 函数返回在预定义字符之前添加反斜杠的字符串。
预定义字符是:
- 单引号(')
- 双引号(")
- 反斜杠(\)
- NULL
提示:该函数可用于为存储在数据库中的字符串以及数据库查询语句准备字符串。
注释:默认地,PHP 对所有的 GET、POST 和 COOKIE 数据自动运行 addslashes()。所以您不应对已转义过的字符串使用 addslashes(),因为这样会导致双层转义。遇到这种情况时可以使用函数 get_magic_quotes_gpc() 进行检测。
PHP 字符串函数是 PHP 核心的组成部分。无需安装即可使用这些函数。
向字符串中的预定义字符添加反斜杠:
<?php $str = "Who's Bill Gates?"; echo $str . " This is not safe in a database query.<br>"; echo addslashes($str) . " This is safe in a database query."; ?>
运行结果:
Who's Bill Gates? This is not safe in a database query. Who\'s Bill Gates? This is safe in a database query.
5. bin2hex() //不常用
bin2hex() 函数把 ASCII 字符的字符串转换为十六进制值。字符串可通过使用 pack() 函数再转换回去。
把一个字符串值从二进制转换为十六进制,再转换回去:
<?php $str = "Shanghai"; echo bin2hex($str) . "<br>"; echo pack("H*",bin2hex($str)) . "<br>"; ?>
运行结果:
5368616e67686169 Shanghai
提示:bin2hex()转换后的字符串均为16位。
提示:这些函数均来自php5,其他或更高版本在应用函数时还需要先检测是否可用;
函数 | 描述 |
---|---|
addcslashes() | 返回在指定的字符前添加反斜杠的字符串。 |
addslashes() | 返回在预定义的字符前添加反斜杠的字符串。 |
bin2hex() | 把 ASCII 字符的字符串转换为十六进制值。 |
chop() | 删除字符串右侧的空白字符或其他字符。 |
chr() | 从指定的 ASCII 值返回字符。 |
chunk_split() | 把字符串分割为一系列更小的部分。 |
convert_cyr_string() | 把字符串由一种 Cyrillic 字符集转换为另一种。 |
convert_uudecode() | 解码 uuencode 编码字符串。 |
convert_uuencode() | 使用 uuencode 算法对字符串进行编码。 |
count_chars() | 返回有关字符串中所用字符的信息。 |
crc32() | 计算字符串的 32 位 CRC。 |
crypt() | 单向的字符串加密法(hashing)。 |
echo() | 输出一个或多个字符串。 |
explode() | 把字符串打散为数组。 |
fprintf() | 把格式化的字符串写入到指定的输出流。 |
get_html_translation_table() | 返回由 htmlspecialchars() 和 htmlentities() 使用的翻译表。 |
hebrev() | 把希伯来文本转换为可见文本。 |
hebrevc() | 把希伯来文本转换为可见文本,并把新行(\n)转换为 <br>。 |
hex2bin() | 把十六进制值的字符串转换为 ASCII 字符。 |
html_entity_decode() | 把 HTML 实体转换为字符。 |
htmlentities() | 把字符转换为 HTML 实体。 |
htmlspecialchars_decode() | 把一些预定义的 HTML 实体转换为字符。 |
htmlspecialchars() | 把一些预定义的字符转换为 HTML 实体。 |
implode() | 返回由数组元素组合成的字符串。 |
join() | implode() 的别名。 |
lcfirst() | 把字符串的首字符转换为小写。 |
levenshtein() | 返回两个字符串之间的 Levenshtein 距离。 |
localeconv() | 返回本地数字及货币格式信息。 |
ltrim() | 移除字符串左侧的空白字符或其他字符。 |
md5() | 计算字符串的 MD5 散列。 |
md5_file() | 计算文件的 MD5 散列。 |
metaphone() | 计算字符串的 metaphone 键。 |
money_format() | 返回格式化为货币字符串的字符串。 |
nl_langinfo() | 返回特定的本地信息。 |
nl2br() | 在字符串中的每个新行之前插入 HTML 换行符。 |
number_format() | 以千位分组来格式化数字。 |
ord() | 返回字符串中第一个字符的 ASCII 值。 |
parse_str() | 把查询字符串解析到变量中。 |
print() | 输出一个或多个字符串。 |
printf() | 输出格式化的字符串。 |
quoted_printable_decode() | 把 quoted-printable 字符串转换为 8 位字符串。 |
quoted_printable_encode() | 把 8 位字符串转换为 quoted-printable 字符串。 |
quotemeta() | 引用元字符。 |
rtrim() | 移除字符串右侧的空白字符或其他字符。 |
setlocale() | 设置地区信息(地域信息)。 |
sha1() | 计算字符串的 SHA-1 散列。 |
sha1_file() | 计算文件的 SHA-1 散列。 |
similar_text() | 计算两个字符串的相似度。 |
soundex() | 计算字符串的 soundex 键。 |
sprintf() | 把格式化的字符串写入变量中。 |
sscanf() | 根据指定的格式解析来自字符串的输入。 |
str_getcsv() | 把 CSV 字符串解析到数组中。 |
str_ireplace() | 替换字符串中的一些字符(对大小写不敏感)。 |
str_pad() | 把字符串填充为新的长度。 |
str_repeat() | 把字符串重复指定的次数。 |
str_replace() | 替换字符串中的一些字符(对大小写敏感)。 |
str_rot13() | 对字符串执行 ROT13 编码。 |
str_shuffle() | 随机地打乱字符串中的所有字符。 |
str_split() | 把字符串分割到数组中。 |
str_word_count() | 计算字符串中的单词数。 |
strcasecmp() | 比较两个字符串(对大小写不敏感)。 |
strchr() | 查找字符串在另一字符串中的第一次出现。(strstr() 的别名。) |
strcmp() | 比较两个字符串(对大小写敏感)。 |
strcoll() | 比较两个字符串(根据本地设置)。 |
strcspn() | 返回在找到某些指定字符的任何部分之前,在字符串中查找的字符数。 |
strip_tags() | 剥去字符串中的 HTML 和 PHP 标签。 |
stripcslashes() | 删除由 addcslashes() 函数添加的反斜杠。 |
stripslashes() | 删除由 addslashes() 函数添加的反斜杠。 |
stripos() | 返回字符串在另一字符串中第一次出现的位置(对大小写不敏感)。 |
stristr() | 查找字符串在另一字符串中第一次出现的位置(大小写不敏感)。 |
strlen() | 返回字符串的长度。 |
strnatcasecmp() | 使用一种"自然排序"算法来比较两个字符串(对大小写不敏感)。 |
strnatcmp() | 使用一种"自然排序"算法来比较两个字符串(对大小写敏感)。 |
strncasecmp() | 前 n 个字符的字符串比较(对大小写不敏感)。 |
strncmp() | 前 n 个字符的字符串比较(对大小写敏感)。 |
strpbrk() | 在字符串中查找一组字符的任何一个字符。 |
strpos() | 返回字符串在另一字符串中第一次出现的位置(对大小写敏感)。 |
strrchr() | 查找字符串在另一个字符串中最后一次出现。 |
strrev() | 反转字符串。 |
strripos() | 查找字符串在另一字符串中最后一次出现的位置(对大小写不敏感)。 |
strrpos() | 查找字符串在另一字符串中最后一次出现的位置(对大小写敏感)。 |
strspn() | 返回在字符串中包含的特定字符的数目。 |
strstr() | 查找字符串在另一字符串中的第一次出现(对大小写敏感)。 |
strtok() | 把字符串分割为更小的字符串。 |
strtolower() | 把字符串转换为小写字母。 |
strtoupper() | 把字符串转换为大写字母。 |
strtr() | 转换字符串中特定的字符。 |
substr() | 返回字符串的一部分。 |
substr_compare() | 从指定的开始位置(二进制安全和选择性区分大小写)比较两个字符串。 |
substr_count() | 计算子串在字符串中出现的次数。 |
substr_replace() | 把字符串的一部分替换为另一个字符串。 |
trim() | 移除字符串两侧的空白字符和其他字符。 |
ucfirst() | 把字符串中的首字符转换为大写。 |
ucwords() | 把字符串中每个单词的首字符转换为大写。 |
vfprintf() | 把格式化的字符串写到指定的输出流。 |
vprintf() | 输出格式化的字符串。 |
vsprintf() | 把格式化字符串写入变量中。 |
wordwrap() | 打断字符串为指定数量的字串 |
上面表中的字符串均可做了解!