一、幾個與特殊字符處理有關的PHP函數
| 函數名 | 釋義 | 介紹 |
| htmlspecialchars | 將與、單雙引號、大於和小於號化成HTML格式 | &轉成& "轉成" ' 轉成' <轉成< >轉成> |
| htmlentities() | 所有字符都轉成HTML格式 | 除上面htmlspecialchars字符外,還包括雙字節字符顯示成編碼等。 |
| addslashes | 單雙引號、反斜線及NULL加上反斜線轉義 | 被改的字符包括單引號 (')、雙引號 (")、反斜線 backslash (\) 以及空字符NULL。 |
| stripslashes | 去掉反斜線字符 | 去掉字符串中的反斜線字符。若是連續二個反斜線,則去掉一個,留下一個。若只有一個反斜線,就直接去掉。 |
| quotemeta | 加入引用符號 | 將字符串中含有 . \\ + * ? [ ^ ] ( $ ) 等字符的前面加入反斜線 "\" 符號。 |
| nl2br() | 將換行字符轉成<br> | |
| strip_tags | 去掉HTML及PHP標記 | 去掉字符串中任何 HTML標記和PHP標記,包括標記封堵之間的內容。注意如果字符串HTML及PHP標簽存在錯誤,也會返回錯誤。 |
| mysql_real_escape_string | 轉義SQL字符串中的特殊字符 | 轉義 \x00 \n \r 空格 \ ' " \x1a,針對多字節字符處理很有效。mysql_real_escape_string會判斷字符集,mysql_escape_string則不用考慮。 |
其它字符串處理函數,請參考:知識分 享:PHP常用字符串正則替換及剖分函數比較。
PHP常用正則匹配函數間的區別,主要有str_replace、str_ireplace、substr_replace、preg_replace、preg_match、preg_match_all、preg_quote、preg_split、ereg_replace、eregi_replace、preg_replace、str_split,當然其中有幾個不能使用正則表達式,但因為跟相關正則函數關系曖昧所以都放到一起比較一下,方便參考。
| 名稱 | 支持正則 | 特點 | 備注 |
| str_replace | X | 字符串替換函數,大小寫敏感 | |
| str_ireplace | X | 字符串替換函數,大小寫不敏感,支持數組式批量替換 | 感謝網友franci,提醒添加 |
| substr_replace | X | 部分替換字符串函數,可以指定位置index | |
| preg_replace | Y | 指定匹配模式進行替換,支持子串引用 | 優先使用 |
| ereg_replace | Y | 指定匹配模式進行替換,大小寫敏感,支持子串引用 | |
| eregi_replace | Y | 指定匹配模式進行替換,大小寫不敏感,支持子串引用 | |
| ereg | Y | 指定模式全文匹配,可以用來匹配判斷,或返回匹配數組 | |
| preg_match | Y | 指定模式匹配一次退出,可以用來是否匹配判斷,或使用返回的匹配數組 | 優先使用 |
| preg_match_all | Y | 指定模式全文匹配,一般用來使用返回的匹配數組 | 優先使用 |
| preg_split | Y | 指定匹配模式下正則剖分,如果能用最好還是使用explode或str_split | |
| str_split | X | 指定長度剖分字符串,默認單個字符剖分成數組 | |
| explode | X | 可以指定單個或多個字符剖分字符串,成功則返回數組,例如12345按照34剖分則返回12和5 | |
| preg_quote | - | 轉義正則表達式字符,意思就是為特殊字符加上反斜線,正則表達式的特殊字符包括:. + * ? [ ^ ] $ ( ) { } = ! < > | : - | |
補充說明:
1、在PHP中有兩套正則表達式函數庫,功能非常相似:
一套是POSIX(Portable Operating System Interface of Unix )庫提供的,函數以ereg_前綴命名,POSIX正則函數庫目前已經不再推薦使用。
一套是PCRE(Perl Compatible Regular Expression)庫提供的,函數以preg_前綴命名,推薦大家優先使用。在PCRE中,通常將模式表達式(即正則表達式)包含在兩個反斜線“/”之間,如“/^w+$/”樣式。
2、PHP正則表達式作用:匹配提取、匹配替換。
