1、字符串格式化
1)去除空格 trim():去除字符串开始位置和结束位置的空格; ltrim():去除字符串左端的空格; rtrim():去除字符串右端的空格;
2)格式化输出 printf(string format,mixed args):string:返回一个新的字符串,用法同C语言; sprintf(string format,mixed args ):void:不返回字符串,直接覆盖原来的字符串,用法同C; nl2br(string):使用HTML格式化,在string所有新行之前插入<br/>(将所有“\n”替换成<br/>); vprintf(),vsprintf():接收的参数 :格式化字符串,参数数组;
3)格式化字符串(储存到数据库之前的预处理) addslashes():为字符串参数的特殊字符添加(\); stripslashes():反引用(\);
4)大小写转换 strtoupper():将字符串全部转化为大写; strtolower():将字符串全部转化为小写; ucfirst():将字符串首字母转化为大写; ucword():将字符串每一个单词首字母转化为大写;
2、字符串的连接和分割 1)全分割和组装: explode(separater,string):string必须是全大写或全小写,使用separater分割string,返回array; implode(separater,array)/ join():使用separater组装array,返回string
2)单项分割: strtok(str,separater):每次有separater令牌截取一段string,同时指针前移,(重置指针:将string重新传个给该函数); substr(string,start,[length]):获取string从start开始的字串; 注:strat为负数时,从尾部开始计数数位;length为负数时,从尾部开始计数忽略的数位;
3、字符串的比较
1)字符串的大小比较 strcmp(string1,string2):二进制安全比较,区分大小写,返回int; strcasecmp(string1,string2):二进制安全比较,不区分大小写; strnatcmp(string1,string2):自然顺序比较,区分大小写;
2)字符串长度: strlen():测试字符串长度;
4、字符串的查找和替换
1)查找字串的字串: strstr(haystack,needle)/strchr( ):从haystack中查找needle,返回needle第一次出现到结尾的haystack字串/false; stristr():strstr()的不区分大小写版本; strrchr(haystack,needle):返回needle最后一次出现到结尾的haystack字串/false;
strpos(haystack,needle):返回needle在haystack第一次出现的位置(int)/false; strrpos():返回neddle最后一次出现的位置; ※strpos()效率比strstr()要高; strpos()判断:if(strpos($example,'needle')===false){ }
2)替换字串的子串: str_replace(mixed neddle,mixed new_needle, mixed haystack ,[int count]):用new_needle替换haystack中的所有needle,count可以规定替换的次数,needle可以是array,string或其他; substr_replace(string,replacement,start,[length]):用replacement替换string的start开始的字串;
php与正则表达式
1、正则表达式匹配:
ereg(string pattern,string search,array):int: 在search中搜索能与pattern相匹配的字符串,并将其装载在array中; eregi():ereg()的忽略大小写版本; int preg_match ( string
$pattern
, string $subject
[, array &$matches
[, int $flags
= 0 [, int$offset
= 0 ]]] )
※使用preg_match( )来代替ereg;
※没有匹配——返回false,没有传入array或search长度为0——返回1;
array[0]全部匹配项,array[1]array[2]...其他匹配项;
2、正则表达式替换字符串
ereg_replace(pattern,replacement,search):string:用replacement替换search中的pattern匹配部分; eregi_replace():不区分大小写版本;
※一般对于相同的功能,正则表达式函数的运行效率要低于字符串函数;
3、正则表达式查询表 用于POSIX风格的正则表达式字符类
匹配 | 类 | 匹配 | 类 |
[[:alnum:]] | 文字数字字符 | [[:punct:]] | 标点符号 |
[[:alpha:]] | 字母字符 | [[:blank:]] | 制表符和空格 |
[[:lower:]] | 大写字母 | [[:space:]] | 空白字符 |
[[:upper:]] | 小写字母 | [[:cntrl:]] | 控制符 |
[[:digit:]] | 小数 | [[:print:]] | 所有可打印字符 |
[[:xdigit:]] | 十六进制数字 | [[:graph:]] | 出空格外的可打印字符 |
在POSIX正则表达式中,用于方括号之外的特殊字符
字符 | 意义 | 字符 | 意义 |
\ | 转义字符 | ( ) | 子模式,括号内的字串完全匹配,如(very)* |
^ | 在字符串的开始匹配 | { } | 最小/最大量记号 |
$ | 在字符串末尾匹配 | * | 匹配0次或更多次 |
. | 匹配除了(\n)之外的所有字符 | + | 匹配1次或更多次 |
| | 选择分支的开始 | ? | 只允许匹配1次,但非必须匹配 |
在POSIX正则表达式中,用于方括号内外的特殊字符
字符 | 意义 | 字符 | 意义 |
\ | 转义字符 | ^ | 非,仅用在开始位置 |
- | 用于指明字符范围 |