Home  >  Article  >  php教程  >  php字符串处理函数库

php字符串处理函数库

WBOY
WBOYOriginal
2016-06-21 09:07:29884browse

函数|字符串

php字符串处理函数库

AddSlashes

字符串加入斜线。

语法: string addslashes(string str);

返回值: 字符串

函数种类: 资料处理

本函数使需要让数据库处理的字符串,引号的部份加上斜线,以供数据库查询 (query) 能顺利运作。这些会被改的字符包括单引号 (')、双引号 (")、反斜线 backslash (\) 以及空字符 NUL (the null byte)。

bin2hex

二进位转成十六进位。

语法: string bin2hex(string str);

返回值: 字符串

函数种类: 资料处理

本函数让二进位字符串转成十六进位字符串。

补充:
josh@superfork.com (22-Jun-1999) 写了一个函数,可将十六进位转成二进位。



function hex2bin($data
) {
  $len = strlen($data
);
  for($i=0;$i) {
      $newdata .= pack("C",hexdec(substr($string,$i,2
)));
  }
  return $newdata
;
}
?>

Chop

去除连续空白。

语法: string chop(string str);

返回值: 字符串

函数种类: 资料处理

本函数将字符串的连续空白清除。


$trimmed = Chop($line
);
?>

 

 

 

Chr

返回序数值的字符。

语法: string chr(int ascii);

返回值: 字符串

函数种类: 资料处理

本函数将字符的序数转成 ASCII 的字符。本函数和 ord() 成对照。


$str .= chr(27
);
$str = sprintf("字符串的结束字符是: %c", 27
);
?>

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
));
?>

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";
?>

 

 

 

explode

切开字符串。

语法: array explode(string separator, string string);

返回值: 数组

函数种类: 资料处理

本函数将字符串依指定的字符串或字符 separator 切开。将切开后的字符串返回到数组变量中。


$pizza = "第一片 第二片 第三片 第四片 第五片 第六片"
;
$pieces = explode(" ", $pizza
);
?>

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:

     echo HTMLSpecialChars($restname); ?>
"> 



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


   echo HTMLSpecialChars($descript
);
?>


 

htmlentities

将所有的字符都转成 HTML 字符串。

语法: string htmlentities(string string);

返回值: 字符串

函数种类: 资料处理

本函数有点像 htmlspecialchars() 函数,但本函数会将所有 string 的字符都转成 HTML 的特殊字集字符串。不过在转换后阅读网页源代码的方面,会有很多困扰,尤其是网页源代码的中文字会变得不知所云,浏览器上看到的还是正常的。

implode

将数组变成字符串。

语法: string implode(string glue, array pieces);

返回值: 字符串

函数种类: 资料处理

本函数将数组的内容组合成一个字符串,参数 glue 是字之间的分隔符号。


$colon_separated = implode(":", $array
);
echo $colon_separated
;
?>

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 换行的
指令。

Ord

返回字符的序数值。

语法: int ord(string string);

返回值: 整数

函数种类: 资料处理

本函数返回字符的 ASCII (美国国家标准交换码) 序数值。本函数和 chr() 函数相反。

if (ord($str) == 10) {
  echo("字符串 \$str 的第一个字是换行字符。\n"
);
}
?>

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。例如传输中途客户的浏览器突然挂了,则会造成输出失败的情形。

printf

输出格式化字符串。

语法: int printf(string format, mixed [args]...);

返回值: 整数

函数种类: 资料处理

本函数依参数 format 指定的内容格式将字符串格式化。格式的细节可以参考 sprintf()。

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);

返回值: 字符串

函数种类: 资料处理

本函数将字符串中含有 . \\ + * ? [ ^ ] ( $ ) 等字符的前面加入反斜线 "\" 符号。

rawurldecode

从 URL 专用格式字符串还原成普通字符串。

语法: string rawurldecode(string str);

返回值: 字符串

函数种类: 编码处理

本函数将字符串解码。从 URL 的字符串专用格式解成普通字符串。详细的编码解码信息及规格文件可以参考 RFC 1738。

rawurlencode

将字符串编码成 URL 专用格式。

语法: string rawurldecode(string str);

返回值: 字符串

函数种类: 编码处理

本函数将字符串编码成 URL 的字符串专用格式,特殊的字符会转换成百分比符号后面加上二个十六位数字的格式。例如,空格就会变成 %20。

echo '';
?>

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 是转换的格式,以百分比符号 % 开始到转换字符为止。而在转换的格式间依序包括了

  1. 填空字符。0 的话表示空格填 0;空格是默认值,表示空格就放着。
  2. 对齐方式。默认值为向右对齐,负号表向左对齐。
  3. 字段宽度。为最小宽度。
  4. 精确度。指在小数点后的浮点数位数。
  5. 类型,见下表

%

印出百分比符号,不转换。

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() 函数。

字符串比较。

语法: int strcmp(string str1, string str2);

返回值: 整数

函数种类: 资料处理

本函数用来比较二字符串的大小。返回负数表示 str1 小于 str2;返回正数表示 str1 大于 str2;返回零表示二字符串相同。

strcspn

不同字符串的长度。

语法: int strcspn(string str1, string str2);

返回值: 整数

函数种类: 资料处理

本函数用来比较二字符串并计算出不同处的字符串长度。

strip_tags

去掉 HTML 及 PHP 的标记。

语法: string strip_tags(string str);

返回值: 字符串

函数种类: 资料处理

本函数可去掉字符串中包含的任何 HTML 及 PHP 的标记字符串。若是字符串的 HTML 及 PHP 标签原来就有错,例如少了大于的符号,则也会返回错误。而本函数和 fgetss() 有着相同的功能。

StripSlashes

去掉反斜线字符。

语法: string stripslashes(string str);

返回值: 字符串

函数种类: 资料处理

本函数可去掉字符串中的反斜线字符。若是连续二个反斜线,则去掉一个,留下一个。若只有一个反斜线,就直接去掉。

strlen

取得字符串长度。

语法: int strlen(string str);

返回值: 整数

函数种类: 资料处理

本函数返回指定的字符串长度。

strrpos

寻找字符串中某字符最后出现处。

语法: int strrpos(string haystack, char needle);

返回值: 整数

函数种类: 资料处理

本函数用来寻找字符串 haystack 中的字符 needle 最后出现的位置。值得注意的是 needle 只能是一个字符,中文字等就不适合了。若找不到指定的字符,则返回 false 值。

strpos

寻找字符串中某字符最先出现处。

语法: int strpos(string haystack, string needle, int [offset]);

返回值: 整数

函数种类: 资料处理

本函数用来寻找字符串 haystack 中的字符 needle 最先出现的位置。值得注意的是 needle 只能是一个字符,中文字等就不适合了。若找不到指定的字符,则返回 false 值。参数 offset 可省略,用来Y表示从 offset 开始找。

strrchr

取得某字符最后出现处起的字符串。

语法: string strrchr(string haystack, string needle);

返回值: 整数

函数种类: 资料处理

本函数用来寻找字符串 haystack 中的字符 needle 最后出现位置,并将此位置起至字符串 haystack 结束之间的字符串返回。若没有找到 needle 则返回 false。

下例取回环境变量 PATH 之最后一个路径

$dir = substr( strrchr( $PATH, ":" ), 1 );
echo "最后的路径为: ".$dir
;
?>

 

strrev

颠倒字符串。

语法: string strrev(string string);

返回值: 字符串

函数种类: 资料处理

将字符串前后颠倒。

下例的返回字符串为 "gneP nosliW"


$str=strrev("Wilson Peng"
);
echo $str
;
?>

strspn

找出某字符串落在另一字符串遮罩的数目。

语法: int strspn(string str1, string str2);

返回值: 整数

函数种类: 资料处理

本函数将 str2 字符串当遮罩,可用来计算 str1 字符串中有几个字符落在 str2 遮罩中。

strstr

返回字符串中某字符串开始处至结束的字符串。

语法: string strstr(string haystack, string needle);

返回值: 字符串

函数种类: 资料处理

本函数将 needle 最先出现在 haystack 处起至 haystack 结束的字符串返回。若找不到 needle 则返回 false。

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(" "
);
}
?>

strtolower

字符串全转为小写。

语法: string strtolower(string str);

返回值: 字符串

函数种类: 资料处理

本函数将字符串 str 全部变小写字符串。

strtoupper

字符串全转为大写。

语法: string strtoupper(string str);

返回值: 字符串

函数种类: 资料处理

本函数将字符串 str 全部变大写字符串。

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
;
?>

strtr

转换某些字符。

语法: string strtr(string str, string from, string to);

返回值: 字符串

函数种类: 资料处理

本函数将字符串 str 中和 from 有关的字符一一转成 to 的字符。

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"
?>

trim

截去字符串首尾的空格。

语法: string trim(string str);

返回值: 字符串

函数种类: 资料处理

本函数返回字符串 string 首尾的空白字符去除后的字符串。

ucfirst

将字符串第一个字符改大写。

语法: string ucfirst(string str);

返回值: 字符串

函数种类: 资料处理

本函数返回字符串 str 第一个字的字首字母改成大写。

ucwords

将字符串每个字第一个字母改大写。

语法: string ucwords(string str);

返回值: 字符串

函数种类: 资料处理

本函数返回字符串 str 每个字的字首字母全都改成大写。



Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn