使用PHP相關函數對字符串格式化的方法

一般狀況下,網站後臺程序在使用用戶輸入的字符串(通常都是經過HTML表單提交)以前,都必須對這些字符串進行格式化處理,以便使其符合程序運行的標準,防止錯誤和漏洞的產生。在下面的內容中,將介紹一些可用的PHP函數來實現這過程。 數據庫

字符串的整理 瀏覽器

字符串整理的第一步是清理字符串中多餘的空格或其餘冗餘的字符。固然若是不將字符串存入一個文件或數據庫中,或者不將它和別的字符串進行比較,這一步驟不是必需的。所以,咱們能夠視狀況而定,靈活的對其進行整理。 函數

爲了實現字符串整理功能,PHP提供了3個很是有用的函數。在接收用記提交字符串腳本的開始處,當咱們要給表單輸入變量定義簡短變量名稱時,可使用trim()函數來整理用戶輸入的數據,具體用法以下所示: post

$username=trim($_POST['username']);
$password=trim($_POST['password']);
$email=trim($_POST['email']); 網站

trim()函數能夠除去字符串開始位置和結束位置的空格,並將結果字符串返回。默認狀況下,除去的字符是換行符和回車符(n和r)、水平和垂直製表符(t和x0B)、字符串結束符()和空格。除了這些默認的過濾字符串以外,也能夠該函數的第二個參數中提供其餘要過濾的特殊字符。根據特定用途,可能會使用到ltrim()和rtrim()函數。 ip

這兩個函數的功能都相似於trim()函數,它們均可以將須要處理的字符串做爲輸入的參數,而後返回通過格式化的字符串。不一樣之處在於:trim()函數將除去整個字符串先後的空格,ltrim()只從字符串的開始處(左邊)去除空格,rtrim()只從字符串的結束處(右邊)除去空格。 開發

格式化字符串 字符串

PHP提供了一系列可使用的函數來從新格式化字符串,這些函數的工做方式各不相同,能夠在程序的多個地方使用,開發人員能夠靈活的來使用它們。 get

一、nl2br()函數 email

nl2br()函數將字符串做爲輸入的參數,用XHTML中的<br />標記字符串的換行符。這對於將一很長的字符串顯示在瀏覽器中是很是有利的。通常狀況下,HTML會忽略純空格,因此若是不使用nl2br()函數來過濾輸出的結果,那麼它看上去就是單獨的一行(除非瀏覽器窗口進行了強制的換行)。

二、print()函數

一般咱們都習慣使用echo語句將字符串輸出,在PHP中也支持print()結構,它實現的功能與echo相同,惟一不一樣之處在於其具備返回值:true或false,表示輸出成功或失敗。除了print()還可使用printf()和sprintf(),來實現一些複雜的格式。它們的工做方式基本相同,只是printf()將一個格式化的字符串輸出到瀏覽器中,而sprintf()返回一個格式化了的字符串。

三、改變字符串中的字母大小寫

有時候須要對輸入的字母大小寫進行格式化,PHP提供了一些函數能夠實現改變字符串中的字母大小寫這一功能,這些函數及其做用以下所示:

strtoupper():將字符串中的字母轉換爲大寫、strtolower():將字符串中的字母轉換成小寫、ucfirst():若是字符串的第一個字符是字母,就將該字符轉換成大寫、ucwords() 將字符串每一個單詞的第一個字母轉換爲大寫。

格式化字符串以便存儲

對於字符中來講,某些字符確定是有效的,可是當將數據插入到數據庫中的時候可能會引發一些問題,由於數據庫會將這些字符解釋成控制符。這些有問題的字符就是引號(單引和雙引)、反斜槓()和NULL字符。

PHP提供了兩個專門用於轉義字符串的函數。在將任何字符串寫到數據庫以前,若是你的PHP的默認配置尚未啓用該功能,那麼你就應該使用addslashes()將它們從新格式化,例如:

$post_content = addslashes(trim($_POST['post_content']));

和其餘字符串格式化函數同樣,addslashes()須要一個字符串做爲轉入參數,通過該函數處理,將返回一個從新格式化後的字符串。

自動添加或去除轉義字符功能是由PHP的magic_quotes_gpc配置指令控制的。在PHP新版本的默認安裝狀況下,該指令是啓用的。gpc表示GET、POST、COOKIE,是一個字母的組合。這就意味着,來自這些方法或方式的變量將被自動包括在引號內。使用get_magic_quotes_gpc()函數,能夠檢查系統中的這個指令是否已經啓用。若是已經啓用,在顯示用戶數據以前,必須調用stripslashes()函數;不然,轉義字符會被顯示出來。

相關文章
相關標籤/搜索