字符串的格式化
字符串的整理:
chop()、
ltrim()和
trim()
整理字符串的第一步
是清理字符串中多余的空格。
- trim()函数可以除去字符串开始位置和结束位置的空格,并将结果字符串返回。默认情况下,除去的字符是换行符和回车符、水平和垂直制表符、字符串结束符和空格。
- ltrim()只从字符串的开始处除去空格,rtrim()只从字符串的结束处除去空格。
- printf()函数是将一个格式化的字符串输出到浏览器中
- sprintf()函数是返回一个格式化了的字符串
echo "Total amount of order is $total.";
printf("Total amount of order is %s.",$total);
printf()函数的优点在于,
可以使用更有用的转换说明来制定$total为一个浮点数。
所有转换说明都以%开始。如果想打印一个"%"符号,必须使用"%%"。
改变字符串中的字符大小写
可以重新格式化字符串中的字母大小写。
- strtoupper() 将字符串转换为大写
- strtolower() 将字符串转换成小写
- ucfirst() 如果字符串的第一个字符是字母,就将该字符转换为大写
- ucwords() 将字符串每个单词的第一个字母转换为大写
格式化字符串以便存储:addslashes()和stripslashes()
对于字符串来说,某些字符肯定是有效的,但是当将数据插入到数据库中的时候可能会引起一些问题,因为数据库会将这些字符解释称控制符。这些有问题的字符是
引号、反斜杠和NULL字符。
我们需要找到一种标记或是转义它们的方法,以便使像MySQL这样的数据库能够理解我们表示的是有实际意义的特殊文本字符,而不是控制序列。为了将这些字符进行转义处理,可以在它们前面加一个反斜杠。
PHP提供了两个专门用于转义字符串的函数。
在将任何字符串写到数据库之前,如果你的PHP的默认配置还没有启用该功能,你应该使用
addslashes()将它们重新格式化,例如:
$feedback = addslashes(trim($_POST['feedback']));
调用addslashes()后,所有引号将被加上反斜杠,而Stripslashes()会移出这些反斜杠。
用字符串函数连接和分割字符串
使用函数
explode()、implode()和join()
分割字符串,
explode(),它的函数原型如下所示:
array explode(string separator, string input [, int limit]);
if(strtolower($email_arrau[1])=="bigcustomer.com"){
$toaddress = "[email protected]";
}else{
$toaddress = "[email protected]";
}
使用implode()或者join()函数来实现与函数explode()相反的效果,这两个函数的效果是一致的。例如:
$new_email = implode('@', $email_array)
使用strtok()函数
与函数explode()每次都将一个字符串全部分割成若干小块不同,strtok()函数一次只从字符串中取出一些片段。对于一次从字符串中取出一个单词的处理来说,strtok()函数比explode()函数的效果更好。
strtok()函数的原型如下所示:
string strtok(string input, string separator);
使用substr()函数
函数substr()允许我们访问一个字符串给定起点和中带你的子字符串。
string substr(string string, int start[, int length]);
字符串的比较
字符串的排序:
strcmp()、strcasecmp()和strnatcmp()
strcmp()函数原型如下所示:
int strcmp(string str1, string str2);
- 函数strcasecmp()除了不区分大小写之外,其他和strcmp()一样。
- 函数strnatcmp()及与之对应的不区分大小写的strnatcasecmp()将按照“自然排序”比较字符串。
使用strlen()函数测试字符串的长度
使用字符串函数匹配和替换子字符串
在字符串中查找字符串:
strstr()、strchr()、strrchr()和stristr()
为了在一个字符串中查找另一个字符串,可以使用上面四个函数中的任意一个。
strstr()有两个变体。
- 第一个变体是stristr(),它几乎和strstr()函数一样,其区别在于不区分字符大小写。
- 第二个变体strtchr(),它也几乎和strstr()一样,但会从最后出现目标关键字的位置的前面返回被搜索的字符串。
查找子字符串的位置:strpos()、strrpos()
strpos()和strrpos()的操作和strstr()类似,但它不是返回一个子字符串,而是返回目标关键字子字符串在被搜索字符串中的位置。
strpos比strstr()运行的速度更快
strrpos()也几乎是一样的,但返回的是被搜索字符串中最后一次出现的目标关键字子字符串的位置。
替换子字符串:str_replace()、substr_replace()
进行替换操作最常用的字符串函数是str_replace()。它的函数原型如下所示:
mixed str_replace(mixed needle, mixed new_needle, mixed haystack[, int&count]);
函数substr_replace()则用来在给定位置中查找和替换字符串中特定的子字符串。
正则表达式:
PHP支持两种风格的正则表达式语法:POSIX和Perl.
- * 表示这个模式可以被重复0次或更多次
- + 表示这个模式可以被重复一次或更多次
子表达式
通常,将一个表达式分隔为几个字表达式是非常有用的。
可以使用()来实现,
(very )*large可匹配"large" "very large" "very very large"
子表达式计数
({})中表示指定内容允许重复的次数。
(very ){1, 3}
表示匹配"very" "very very" "very very very"
定义到字符串的开始或末尾
- [a-z]模式将匹配任何包含小写字母字符的字符串。
- ^用于正则表达式的开始
- $用于正则表达式的末尾
分支
可以使用正则表达式中的一条竖线来表示一个选择。例如:
com|edu|net
参考资料:
PHP&MySQL.Web