我有幾個字符串構成一個CustomerInfo Object.I想編寫一個驗證每個字符串的函數。PHP驗證和驗證字符串
比如我有一個存儲爲字符串以下值: 公寓數量 街 市 名稱 電話 電子郵件
每一種是由服務器接收並需要將它們存儲在數據庫。但是,在我這樣做之前,我想驗證攜帶這些值的字符串變量的內容。
我是PHP和服務器端編程的新手。我想知道有什麼好的但簡單的策略來實現這一點。 請問有人可以給我一些想法和鏈接。
感謝
我有幾個字符串構成一個CustomerInfo Object.I想編寫一個驗證每個字符串的函數。PHP驗證和驗證字符串
比如我有一個存儲爲字符串以下值: 公寓數量 街 市 名稱 電話 電子郵件
每一種是由服務器接收並需要將它們存儲在數據庫。但是,在我這樣做之前,我想驗證攜帶這些值的字符串變量的內容。
我是PHP和服務器端編程的新手。我想知道有什麼好的但簡單的策略來實現這一點。 請問有人可以給我一些想法和鏈接。
感謝
這是正則表達式的用處。滿足preg_match。你可能想閱讀正則表達式上的這個tutorial :)而且當你擅長他們時請記住,不能做所有事情。他們只能解析常規語言。有時候人們會因爲使用正則表達式而被過度使用,所以這只是一個警告。下面是一個簡單的例子用法:
if(!preg_match('/^[\w.%+-][email protected][\w.-]+\.[A-Z]{2,5}$/i', $email)){
// Email is unvalid.
// Handle it here
}
圖案/^[\w.%+-][email protected][\w.-]+\.[A-Z]{2,5}$/i
可以被分解,如:
/- >分隔符,可以使用任何字符。
^- >串的開始
[\ w%的+ - 。] + - >一個或多個(+)從所述一組字符[\ w%的+ - ],其允許單詞字符(字母和下劃線)和任何符號 '%+ - '
@ - >一個@符號
[\瓦特.-] + - >一個或多個單詞字符的點或連字符
\。 - >中的一個點
[AZ] {2,5-} - > 2-5大寫字母
$ - >字符串的結束
/- 的>結束分隔符(完正則表達式)
我 - >不區分大小寫的修飾符(這意味着,在那裏我有AZ之前現在也匹配AZ
非常感謝PaulPro。我很感謝您的詳細解答和鏈接。它很棒讓我開始。 – banditKing
除正則表達式外,還有其他選項嗎? – banditKing
@ user657514除了正則表達式,沒有很多好的解決方案。你也許能夠找到一個預先製作的表單驗證器或其他東西,但它可能只是使用正則表達式。正則表達式只是在字符串中搜索模式的一種簡單方法,這就是您需要執行的驗證操作。如果你願意,你可以自己迭代它們,但這正是regex爲你簡化爲一個PHP的班輪:) – Paulpro
在PHP中可以使用preg_match
來檢查你的字符串對regular expressions。如果你想使用這些但你不熟悉正則表達式,你可以看看這個simple tutorial,或者你可以在online regular expression database(這個例子顯示用於email pattern checking的正則表達式)中尋找一個好的正則表達式。
非常感謝您的鏈接。我會通過他們。 – banditKing
您可以使用內置的PHP過濾器,以執行標準驗證:
http://php.net/manual/en/function.filter-var.php http://php.net/manual/en/filter。filters.validate.php
// Example:
if (filter_var($email_input, FILTER_VALIDATE_EMAIL) !== false) {
// Invalid e-mail!
}
請注意,這僅適用於PHP 5.2+
的preg_match()等人想到 – 2011-07-24 21:07:02