首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 开源 FAQ 第二书店 博文视点 程序员
频道: 研发 数据库 中间件 信息化 视频 .NET Java 游戏 移动 服务: 人才 外包 培训
    图书品种:235680
       
热门搜索: ASP.NET Ajax Spring Hibernate Java

4.4  整理字符串

Cleaning Strings

通常,我们从文件或用户得到的字符串在使用前需要整理(Cleaning)。原始数据的两个普遍问题是没用的空白符号(如空格、换行)的存在和不正确的字母大小写。

4.4.1  删除空白符

Removing Whitespace

可以使用函数trim(  )、ltrim(  )和rtrim(  )删除字符串开头或结尾的空白符(whitespace):

$trimmed = trim(string [, charlist ]);

$trimmed = ltrim(string [, charlist ]);

$trimmed = rtrim(string [, charlist ]);

trim(  )返回删除首尾空白的字符串。ltrim(  )(l是指left)只删除字符串开头的空白。rtrim(  )(r是指right)只删除字符串末尾的空白。可选参数charlist是一个指定所有要删除字符的字符串。默认情况下要删除的字符如表4-3所示:

 表4-3:trim( )、ltrim( )和rtrim( )默认删除的字符

字  符

ASCII  值

意  义

" "

0x20

空格

"\t"

0x09

制表符

"\n"

0x0A

换行

"\r"

0x0D

回车

"\0"

0x00

字符

"\x0B"

0x0B

纵向列表符

 

例如:

$title = "   Programming PHP  \n";

$str_1 = ltrim($title);     // $str_1 是 "Programming PHP  \n"

$str_2 = rtrim($title);     // $str_2 是 "   Programming PHP"

$str_3 = trim($title);      // $str_3 是 "Programming PHP"

给出一行用制表符分隔的数据,使用charset参数来删除开头或结尾的空白而不删除制表符:

$record = "  Fred\tFlintstone\t35\tWilma   \n";

$record = trim($record, " \r\n\0\x0B");

// $record is "Fred\tFlintstone\t35\tWilma"

4.4.2  改变大小写

Changing Case

PHP有一些函数用于改变字符串的大小写:strtolower( )和strtoupper( )操作整个字符串,ucfirst( )只操作字符串的第一个字母,ucwords( )则操作字符串中每个单词的第一个字母。每一个函数都把字符串作为参数来执行,并适当地改变大小写,然后返回字符串的拷贝。例如:

$string1 = "FRED flintstone";

$string2 = "barney rubble";

print(strtolower($string1));           

print(strtoupper($string1));           

print(ucfirst($string2));              

print(ucwords($string2));   

fred flintstone

FRED FLINTSTONE

Barney rubble

Barney Rubble

如果得到一个混合大小写的字符串,并想把它转换为“标题大写”形式,即每个单词的第一个字母大写而其他的字母小写(但是你不确定字符串以大写或小写开头),可以结合使用strtolower(  )和ucwords(  )来完成:

print(ucwords(strtolower($string1)));  

Fred Flintstone

查看所有评论(0)条】

最近评论



正在载入评论列表...
热点评论