PHP的字符串处理函数库

addslashes: 字符串加入斜线。
bin2hex: 二进位转成十六进位。
chop: 去除连续空白。
chr: 返回序数值的字符。
chunk_split: 将字符串分成小段。
convert_cyr_string: 转换古斯拉夫字符串成其它字符串。
crypt: 将字符串用 des 编码加密。
echo: 输出字符串。
explode: 切开字符串。
flush: 清出输出缓冲区。
get_meta_tags: 抽出文件所有 meta 标记的资料。
htmlspecialchars: 将特殊字符转成 html 格式。
htmlentities: 将所有的字符都转成 html 字符串。
implode: 将数组变成字符串。
join: 将数组变成字符串。
ltrim: 去除连续空白。
md5: 计算字符串的 md5 哈稀。
nl2br: 将换行字符转成

ord: 返回字符的序数值。
parse_str: 解析 query 字符串成变量。
print: 输出字符串。
printf: 输出格式化字符串。
quoted_printable_decode: 将 qp 编码字符串转成 8 位字符串。
quotemeta: 加入引用符号。
rawurldecode: 从 url 专用格式字符串还原成普通字符串。
rawurlencode: 将字符串编码成 url 专用格式。
setlocale: 配置地域化信息。
similar_text: 计算字符串相似度。
soundex: 计算字符串的读音值
sprintf: 将字符串格式化。
strchr: 寻找第一个出现的字符。
strcmp: 字符串比较。
strcspn: 不同字符串的长度。
strip_tags: 去掉 html 及 php 的标记。
stripslashes: 去掉反斜线字符。
strlen: 取得字符串长度。
strrpos: 寻找字符串中某字符最后出现处。
strpos: 寻找字符串中某字符最先出现处。
strrchr: 取得某字符最后出现处起的字符串。
strrev: 颠倒字符串。
strspn: 找出某字符串落在另一字符串遮罩的数目。
strstr: 返回字符串中某字符串开始处至结束的字符串。
strtok: 切开字符串。
strtolower: 字符串全转为小写。
strtoupper: 字符串全转为大写。
str_replace: 字符串取代。
strtr: 转换某些字符。
substr: 取部份字符串。
trim: 截去字符串首尾的空格。
ucfirst: 将字符串第一个字符改大写。
ucwords: 将字符串每个字第一个字母改大写。

addslashes
字符串加入斜线。
语法: string addslashes(string str);
返回值: 字符串
函数种类: 资料处理
内容说明: 本函数使需要让数据库处理的字符串,引号的部份加上斜线,以供数据库查询 (query) 能顺利运作。这些会被改的字符包括单引号 (‘)、双引号 (“)、反斜线 backslash (\) 以及空字符 nul (the null byte)。
参考: stripslashes() htmlspecialchars() quotemeta()

bin2hex
二进位转成十六进位。
语法: string bin2hex(string str);
返回值: 字符串
函数种类: 资料处理
内容说明: 本函数让二进位字符串转成十六进位字符串。
使用范例
补充:
josh@superfork.com (22-jun-1999) 写了一个函数,可将十六进位转成二进位。
function hex2bin($data) {
$len = strlen($data);
for($i=0;$i<$len;$i+=2) {
$newdata .= pack(“c”,hexdec(substr($string,$i,2)));
}
return $newdata;
}
?>

chop
去除连续空白。
语法: string chop(string str);
返回值: 字符串
函数种类: 资料处理
内容说明: 本函数将字符串的连续空白清除。
使用范例
$trimmed = chop($line);
?>
参考: trim()

chr
返回序数值的字符。
语法: string chr(int ascii);
返回值: 字符串
函数种类: 资料处理
内容说明: 本函数将字符的序数转成 ascii 的字符。本函数和 ord() 成对照。
使用范例
$str .= chr(27);
$str = sprintf(“字符串的结束字符是: %c”, 27);
?>
参考: ord() sprintf()

chunk_split
将字符串分成小段。
语法: string chunk_split(string string, int [chunklen] , string [end]);
返回值: 字符串
函数种类: 资料处理
内容说明: 本函数将字符变成小段供其它函数使用。例如,base64_encode。内定是参数 chunklen (76 个字符) 每隔 76 个字符插入 end (“\r\n”)。返回新字符串而不改动原字符串。
使用范例
将字符串 $data 格式化成 mime base64 格式
$new_string = chunk_split(base64_encode($data));
?>
参考: ereg_replace()

convert_cyr_string
转换古斯拉夫字符串成其它字符串。
语法: string convert_cyr_string(string str, string from, string to);
返回值: 字符串
函数种类: 资料处理
内容说明: 本函数将古斯拉夫字符串转成其它的字符串。from 及 to 二个参数是字符,其代表意义如下:
k – koi8-r
w – windows-1251
i – iso8859-5
a – x-cp866
d – x-cp866
m – x-mac-cyrillic

crypt
将字符串用 des 编码加密。
语法: string crypt(string str, string [salt]);
返回值: 字符串
函数种类: 编码处理
内容说明: 本函数将字符串用 unix 的标准加密 des 模块加密。这是单向的加密函数,无法解密。欲比对字符串,将已加密的字符串的头二个字符放在 salt 的参数中,再比对加密后的字符串。
更详细的资料请参考 unix manual (man) 中的 crypt。
在一些较新的 unix 版本中,除了 des 之外还提供了其它的加密模块,如 md5。甚至有些系统还用 md5 取代 des。在 salt 参数还有一些变化,端看传给 salt 参数的字符串长度而定:
crypt_std_des – 标准的 des 编码,输入 2 字符的 salt。
crypt_ext_des – 延伸的 des 编码,输入 9 字符的 salt。
crypt_md5 – md5 编码,输入 12 字符加上 $1$ 的 salt。
crypt_blowfish – 延伸的 des 编码,输入 16 字符加上 $2$ 的 salt。
此外,若不使用 salt 参数,则程序会自动产生。

echo
输出字符串。
语法: echo “string arg1, string [argn]…”;
返回值: 无
函数种类: php 系统功能
内容说明: 本函数将字符串输出。由于它不是真正的函数,因此也没有返回值。
使用范例
echo “hello world”;
?>
参考: print() printf() flush()

explode
切开字符串。
语法: array explode(string separator, string string);
返回值: 数组
函数种类: 资料处理
内容说明: 本函数将字符串依指定的字符串或字符 separator 切开。将切开后的字符串返回到数组变量中。
使用范例
$pizza = “第一片 第二片 第三片 第四片 第五片 第六片”;
$pieces = explode(” “, $pizza);
?>
参考: implode()

flush
清出输出缓冲区。
语法: void flush(void);
返回值: 无
函数种类: 资料处理
内容说明: 本函数无输入亦无输出。将输出缓冲区的资料送出,并清出。

get_meta_tags
抽出文件所有 meta 标记的资料。
语法: array get_meta_tags(string filename, int [use_include_path]);
返回值: 数组
函数种类: 资料处理
内容说明: 本函数将 homepage 中的所有 标记的资料取出并放置数组变量返回。例如




php bible

本函数找出 meta 标记,name 属性的字符串为数组索引,而 content 属性字符串则为数组的内容资料了。治募注意的是本函数为 php 原生函数,在 unix 系列平台上无法直接处理麦金塔的文件格式,因为换行字符不同。blake@mediaone.net 指出 (07-jun-1999),参数 filename 也可以是 url,函数将抽出远端服务器的文件 meta 标记。而函数在处理时,遇到 标记结束,要是 标记放在 后将无法处理。

htmlspecialchars
将特殊字符转成 html 格式。
语法: string htmlspecialchars(string string);
返回值: 字符串
函数种类: 资料处理
内容说明: 本函数将特殊字符转成 html 的字符串格式 ( &….; )。最常用到的场合可能就是处理客户留言的留言版了。
& (和) 转成 &
” (双引号) 转成 "
< (小于) 转成 <
> (大于) 转成 >
此函数只转换上面的特殊字符,并不会全部转换成 html 所定的 ascii 转换。
使用范例
这是 aulbach@unter.franken.de (27-jan-1999) 所提供的范例

restaurant description

name of restaurant:

输入描述 (若您会 html,可直接使用):



参考: htmlentities() nl2br()

htmlentities
将所有的字符都转成 html 字符串。
语法: string htmlentities(string string);
返回值: 字符串
函数种类: 资料处理
内容说明: 本函数有点像 htmlspecialchars() 函数,但本函数会将所有 string 的字符都转成 html 的特殊字集字符串。不过在转换后阅读网页源代码的方面,会有很多困扰,尤其是网页源代码的中文字会变得不知所云,浏览器上看到的还是正常的。

implode
将数组变成字符串。
语法: string implode(string glue, array pieces);
返回值: 字符串
函数种类: 资料处理
内容说明: 本函数将数组的内容组合成一个字符串,参数 glue 是字之间的分隔符号。
使用范例
$colon_separated = implode(“:”, $array);
echo $colon_separated;
?>
参考: explode() join() split()

join
将数组变成字符串。
语法: string join(string glue, array pieces);
返回值: 字符串
函数种类: 资料处理
内容说明: 本函数是 implode 函数的别名。

ltrim
去除连续空白。
语法: string ltrim(string str);
返回值: 字符串
函数种类: 资料处理
内容说明: 本函数用来删去字符串中的连续空白带 (whitespace)。

md5
计算字符串的 md5 哈稀。
语法: string md5(string str);
返回值: 字符串
函数种类: 编码处理
内容说明: 本函数用来计算 md5 哈稀。关于 md5 编码法,可以参考 rsa data security, inc. md5 message-digest algorithm. rfc1321;或是赖溪松、韩亮、张真诚等合着之近代密码学及其应用,11.3。

nl2br
将换行字符转成

语法: string nl2br(string string);
返回值: 字符串
函数种类: 资料处理
内容说明: 本函数将换行字符转换成 html 换行的
指令。
参考: htmlspecialchars() htmlentities()

ord
返回字符的序数值。
语法: int ord(string string);
返回值: 整数
函数种类: 资料处理
内容说明: 本函数返回字符的 ascii (美国国家标准交换码) 序数值。本函数和 chr() 函数相反。
使用范例
if (ord($str) == 10) {
echo(“字符串 \$str 的第一个字是换行字符。\n”);
}
?>
参考: chr()

parse_str
解析 query 字符串成变量。
语法: void parse_str(string str);
返回值: 无
函数种类: 资料处理
内容说明: 本函数可将浏览器返回的 get 方法的 query_string 字符串解析。返回的变量名及值就依 query_string 的名称及值。
使用范例
$str = “first=value&second[]=this+works&second[]=another”;
parse_str($str);
echo $first; // 显示出 “value” 字符串
echo $second[0]; // 显示 “this works” 字符串
echo $second[1]; // 显示 “another” 字符串
?>

print
输出字符串。
语法: boolean print(string arg);
返回值: 布尔值
函数种类: 资料处理
内容说明: 本函数输出字符串。若成功则返回 1,失败则返回 0。例如传输中途客户的浏览器突然挂了,则会造成输出失败的情形。
参考: echo() printf() flush()

printf
输出格式化字符串。
语法: int printf(string format, mixed [args]…);
返回值: 整数
函数种类: 资料处理
内容说明: 本函数依参数 format 指定的内容格式将字符串格式化。格式的细节可以参考 sprintf()。
参考: print() sprintf() flush()

quoted_printable_decode
将 qp 编码字符串转成 8 位字符串。
语法: string quoted_printable_decode(string str);
返回值: 字符串
函数种类: 编码处理
内容说明: 本函数可以将 quoted-printable 后的字符串解码成为 8 位编码的字符串。而本函数类似 imap_qprint() 函数,只一不同的地方是使用 imap_qprint() 函数需要让系统加入 imap 的模块,而本函数不需要 imap 模块。

quotemeta
加入引用符号。
语法: string quotemeta(string str);
返回值: 字符串
函数种类: 资料处理
内容说明: 本函数将字符串中含有 . \\ + * ? [ ^ ] ( $ ) 等字符的前面加入反斜线 “\” 符号。
参考: addslashes() htmlentities() htmlspecialchars() nl2br() stripslashes()

rawurldecode
从 url 专用格式字符串还原成普通字符串。
语法: string rawurldecode(string str);
返回值: 字符串
函数种类: 编码处理
内容说明: 本函数将字符串解码。从 url 的字符串专用格式解成普通字符串。详细的编码解码信息及规格文件可以参考 rfc 1738。
参考: rawurlencode()

rawurlencode
将字符串编码成 url 专用格式。
语法: string rawurldecode(string str);
返回值: 字符串
函数种类: 编码处理
内容说明: 本函数将字符串编码成 url 的字符串专用格式,特殊的字符会转换成百分比符号后面加上二个十六位数字的格式。例如,空格就会变成 %20。
使用范例
echo ‘‘;
?>
参考: rawurldecode()

setlocale
配置地域化信息。
语法: string setlocale(string category, string locale);
返回值: 字符串
函数种类: 操作系统与环境
内容说明: 本函数用来配置地域的信息。参数 category 有下列的选择:
lc_all 包括下面的全项选项都要。
lc_collate 配置字符串比较,php 目前尚未实作出来本项。
lc_ctype 配置字符类别及转换。例如全变大写 strtoupper()。
lc_monetary 配置金融货币,php 目前尚未实作。
lc_numeric 配置小数点后的位数。
lc_time 配置时间日期格式,与 strftime() 合用。
而参数 locate 若是空字符串 “”,则会使用系统环境变量的 locate 或是 lang 的值。若 locate 为零,则不会改变地域化配置。返回新的地域,若系统尚未实作则返回 false。
使用范例
michal fita 于 11-jan-1999 11:01 提出这个以波兰作地域化的例子。
setlocale(“lc_all”, “pl”);
$net = “1234,56”;
$gross = “1,22” * $net;
printf(“毛利: %s, 净利: %s”, $gross, $net”);
/* 波兰总?/font>[值税为 22% */
?>
返回值则为
毛利: 1234,56, 净利: 1506,1632

similar_text
计算字符串相似度。
语法: int similar_text(string first, string second, double [percent]);
返回值: 整数
函数种类: 资料处理
内容说明
本函数用来计算比较二字符串的相似程度。

soundex
计算字符串的读音值
语法: string soundex(string str);
返回值: 字符串
函数种类: 资料处理
内容说明: soundex 值是利用英文字的读音近似值所求得的值,值由四个字符构成,第一个字符为英文字母,后三个为数字。在拼音文字中有时会有会念但不能拼出正确字的情形,特别是在做搜寻引擎时面对用户传入的英文字符串,可用本函数做类似模糊比对的效果。例如 knuth 和 kant 二个字符串,它们的 soundex 值都是 h416。更详细的说明参考 donald knuth 大师的名著:电脑程序设计的艺术 (the art of computer programming) 第三卷排序和搜寻。
使用范例
$str1=soundex(“wilson”);
$str2=soundex(“waillsume”);
echo “soundex(\”wilson\”)=$str1 等于\n”;
echo “soundex(\”waillsume\”)=$str2\n”;
echo “值均为 $str1”;
?>
上例返回的字符串为
soundex(“wilson”)=w425 等于
soundex(“waillsume”)=w425
值均为 w425

sprintf
将字符串格式化。
语法: string sprintf(string format, mixed [args]…);
返回值: 字符串
函数种类: 资料处理
内容说明: 本函数用来将字符串格式化。参数 format 是转换的格式,以百分比符号 % 开始到转换字符为止。而在转换的格式间依序包括了
填空字符。0 的话表示空格填 0;空格是默认值,表示空格就放着。
对齐方式。默认值为向右对齐,负号表向左对齐。
字段宽度。为最小宽度。
精确度。指在小数点后的浮点数位数。
类型,见下表 % 印出百分比符号,不转换。
b 整数转成二进位。
c 整数转成对应的 ascii 字符。
d 整数转成十进位。
f 倍精确度数字转成浮点数。
o 整数转成八进位。
s 整数转成字符串。
x 整数转成小写十六进位。
x 整数转成大写十六进位。
使用范例
$money1 = 68.75;
$money2 = 54.35;
$money = $money1 + $money2;
// 此时变量 $money 值为 “123.1”;
$formatted = sprintf (“%01.2f”, $money);
// 此时变量 $ formatted 值为 “123.10”
?>

strchr
寻找第一个出现的字符。
语法: string strchr(string haystack, string needle);
返回值: 字符串
函数种类: 资料处理
内容说明: 本函数也就是 strstr() 函数。

strcmp
字符串比较。
语法: int strcmp(string str1, string str2);
返回值: 整数
函数种类: 资料处理
内容说明: 本函数用来比较二字符串的大小。返回负数表示 str1 小于 str2;返回正数表示 str1 大于 str2;返回零表示二字符串相同。
参考: ereg() substr() strstr()

strcspn
不同字符串的长度。
语法: int strcspn(string str1, string str2);
返回值: 整数
函数种类: 资料处理
内容说明: 本函数用来比较二字符串并计算出不同处的字符串长度。
参考: strspn()

strip_tags
去掉 html 及 php 的标记。
语法: string strip_tags(string str);
返回值: 字符串
函数种类: 资料处理
内容说明: 本函数可去掉字符串中包含的任何 html 及 php 的标记字符串。若是字符串的 html 及 php 标签原来就有错,例如少了大于的符号,则也会返回错误。而本函数和 fgetss() 有着相同的功能。

stripslashes
去掉反斜线字符。
语法: string stripslashes(string str);
返回值: 字符串
函数种类: 资料处理
内容说明: 本函数可去掉字符串中的反斜线字符。若是连续二个反斜线,则去掉一个,留下一个。若只有一个反斜线,就直接去掉。
参考: addslashes()

strlen
取得字符串长度。
语法: int strlen(string str);
返回值: 整数
函数种类: 资料处理
内容说明: 本函数返回指定的字符串长度。

strrpos
寻找字符串中某字符最后出现处。
语法: int strrpos(string haystack, char needle);
返回值: 整数
函数种类: 资料处理
内容说明: 本函数用来寻找字符串 haystack 中的字符 needle 最后出现的位置。值得注意的是 needle 只能是一个字符,中文字等就不适合了。若找不到指定的字符,则返回 false 值。
参考: strpos() strrchr() substr() strstr()

strpos
寻找字符串中某字符最先出现处。
语法: int strpos(string haystack, string needle, int [offset]);
返回值: 整数
函数种类: 资料处理
内容说明: 本函数用来寻找字符串 haystack 中的字符 needle 最先出现的位置。值得注意的是 needle 只能是一个字符,中文字等就不适合了。若找不到指定的字符,则返回 false 值。参数 offset 可省略,用来y表示从 offset 开始找。
参考: strrpos() strrchr() substr() strstr()

strrchr
取得某字符最后出现处起的字符串。
语法: string strrchr(string haystack, string needle);
返回值: 整数
函数种类: 资料处理
内容说明: 本函数用来寻找字符串 haystack 中的字符 needle 最后出现位置,并将此位置起至字符串 haystack 结束之间的字符串返回。若没有找到 needle 则返回 false。
使用范例
下例取回环境变量 path 之最后一个路径
$dir = substr( strrchr( $path, “:” ), 1 );
echo “最后的路径为: “.$dir;
?>
参考: substr() strstr()

strrev
颠倒字符串。
语法: string strrev(string string);
返回值: 字符串
函数种类: 资料处理
内容说明: 将字符串前后颠倒。
使用范例
下例的返回字符串为 “gnep nosliw”
$str=strrev(“wilson peng”);
echo $str;
?>

strspn
找出某字符串落在另一字符串遮罩的数目。
语法: int strspn(string str1, string str2);
返回值: 整数
函数种类: 资料处理
内容说明: 本函数将 str2 字符串当遮罩,可用来计算 str1 字符串中有几个字符落在 str2 遮罩中。
参考: strcspn()

strstr
返回字符串中某字符串开始处至结束的字符串。
语法: string strstr(string haystack, string needle);
返回值: 字符串
函数种类: 资料处理
内容说明: 本函数将 needle 最先出现在 haystack 处起至 haystack 结束的字符串返回。若找不到 needle 则返回 false。
参考: strrchr() substr() ereg()

strtok
切开字符串。
语法: string strtok(string arg1, string arg2);
返回值: 字符串
函数种类: 资料处理
内容说明: 本函数将字符串 arg1 依字符串 arg2 的值切开成小段小段的字符串。
使用范例: 本例将 i will be back 字符串依空白切开。
$string = “i will be back”;
$tok = strtok($string,” “);
while($tok) {
echo “单字=$tok
“;
$tok = strtok(” “);
}
?>
参考: split() explode()

strtolower
字符串全转为小写。
语法: string strtolower(string str);
返回值: 字符串
函数种类: 资料处理
内容说明: 本函数将字符串 str 全部变小写字符串。
参考: strtoupper() ucfirst()

strtoupper
字符串全转为大写。
语法: string strtoupper(string str);
返回值: 字符串
函数种类: 资料处理
内容说明: 本函数将字符串 str 全部变大写字符串。
参考: strtolower() ucfirst()

str_replace
字符串取代。
语法: string str_replace(string needle, string str, string haystack);
返回值: 字符串
函数种类: 资料处理
内容说明: 本函数将字符串 str 代入 haystack 字符串中,将所有的 needle 置换成 str。mlevine@adtraq.com (11-apr-1999) 指出在 php 3.0.7 版,本函数有些 bug,而 nadeem@bleh.org (05-jun-1999) 补充在 php 3.0.8 版本函数就回复正常了。
使用范例
下例将 %body% 以 black 取代
$bodytag = str_replace(“%body%”, “black”, ““);
echo $bodytag;
?>
参考: ereg_replace()

strtr
转换某些字符。
语法: string strtr(string str, string from, string to);
返回值: 字符串
函数种类: 资料处理
内容说明: 本函数将字符串 str 中和 from 有关的字符一一转成 to 的字符。
参考: ereg_replace()

substr
取部份字符串。
语法: string substr(string string, int start, int [length]);
返回值: 字符串
函数种类: 资料处理
内容说明: 本函数将字符串 string 的第 start 位起的字符串取出 length 个字符。若 start 为负数,则从字符串尾端算起。若可省略的参数 length 存在,但为负数,则表示取到倒数第 length 个字符。
使用范例
echo substr(“abcdef”, 1, 3); // 返回 “bcd”
echo substr(“abcdef”, -2); // 返回 “ef”
echo substr(“abcdef”, -3, 1); // 返回 “d”
echo substr(“abcdef”, 1, -1); // 返回 “bcde”
?>
参考: strrchr() ereg()

trim
截去字符串首尾的空格。
语法: string trim(string str);
返回值: 字符串
函数种类: 资料处理
内容说明: 本函数返回字符串 string 首尾的空白字符去除后的字符串。
参考: chop() ltrim()

ucfirst
将字符串第一个字符改大写。
语法: string ucfirst(string str);
返回值: 字符串
函数种类: 资料处理
内容说明: 本函数返回字符串 str 第一个字的字首字母改成大写。
参考: strtoupper() strtolower()

ucwords
将字符串每个字第一个字母改大写。
语法: string ucwords(string str);
返回值: 字符串
函数种类: 资料处理
内容说明: 本函数返回字符串 str 每个字的字首字母全都改成大写。
参考: strtoupper() strtolower() ucfirst()