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







