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

2022-04-09 03:52:04 字數 2081 閱讀 1548

通常情況下,**後台程式在使用使用者輸入的字串(一般都是通過html表單提交)之前,都必須對這些字串進行格式化處理,以便使其符合程式執行的標準,防止錯誤和漏洞的產生。在下面的內容中,將介紹一些可用的php函式來實現這過程。

字串的整理

字串整理的第一步是清理字串中多餘的空格或其他冗餘的字元。當然如果不將字串存入乙個檔案或資料庫中,或者不將它和別的字串進行比較,這一步驟不是必需的。因此,我們可以視情況而定,靈活的對其進行整理。

為了實現字串整理功能,php提供了3個非常有用的函式。在接收用記提交字串指令碼的開始處,當我們要給表單輸入變數定義簡短變數名稱時,可以使用trim()函式來整理使用者輸入的資料,具體用法如下所示:

$username=trim($_post['username']);

$password=trim($_post['password']);

$email=trim($_post['email']);

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

這兩個函式的功能都類似於trim()函式,它們都可以將需要處理的字串作為輸入的引數,然後返回經過格式化的字串。不同之處在於:trim()函式將除去整個字串前後的空格,ltrim()只從字串的開始處(左邊)去除空格,rtrim()只從字串的結束處(右邊)除去空格。

格式化字串

php提供了一系列可以使用的函式來重新格式化字串,這些函式的工作方式各不相同,可以在程式的多個地方使用,開發人員可以靈活的來使用它們。

1、nl2br()函式

nl2br()函式將字串作為輸入的引數,用xhtml中的

標記字串的換行符。這對於將一很長的字串顯示在瀏覽器中是非常有利的。一般情況下,html會忽略純空格,所以如果不使用nl2br()函式來過濾輸出的結果,那麼它看上去就是單獨的一行(除非瀏覽器視窗進行了強制的換行)。

2、print()函式

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

3、改變字串中的字母大小寫

有時候需要對輸入的字母大小寫進行格式化,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()函式;否則,轉義字元會被顯示出來。

PHP字串格式化函式

從字串左側刪除空白或其他預定義字元 string ltrim string str string charlist 從字串右側刪除空白或其他預定義字元 string rtrim string str string charlist 刪除字串兩端空白字元或其他預定義字元 string trim str...

PHP字串格式化函式

localeconv 數值的格式化資訊,根據setlocale函式設定的當前地區,返回乙個包含本地化數字和貨幣格式化資訊的關聯陣列。setlocale 設定地區資訊,第乙個引數指定了受區域設定影響的函式類別常量,第二個引數指定將地區資訊設定為哪個國家 地區,可以是乙個或多個字串或陣列。如果地區資訊是...

php字串操作相關的函式

trim 函式可以去除字串開始和結束位置的空格,並將結果字串返回。預設情況下,除去的字元是 換行符 和 回車符 n 和 r 水平製表符和垂直製表符 t 和 x0b 字串結束符 0 和空格。1trim 只從字串開始處除去空格,rtrim 只從字串結束處除去空格。使用 html 格式化 n12br 函式...