2011-07-24 86 views
1

我有幾個字符串構成一個CustomerInfo Object.I想編寫一個驗證每個字符串的函數。PHP驗證和驗證字符串

比如我有一個存儲爲字符串以下值: 公寓數量 街 市 名稱 電話 電子郵件

每一種是由服務器接收並需要將它們存儲在數據庫。但是,在我這樣做之前,我想驗證攜帶這些值的字符串變量的內容。

我是PHP和服務器端編程的新手。我想知道有什麼好的但簡單的策略來實現這一點。 請問有人可以給我一些想法和鏈接。

感謝

+0

的preg_match()等人想到 – 2011-07-24 21:07:02

回答

5

這是正則表達式的用處。滿足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

+0

非常感謝PaulPro。我很感謝您的詳細解答和鏈接。它很棒讓我開始。 – banditKing

+0

除正則表達式外,還有其他選項嗎? – banditKing

+0

@ user657514除了正則表達式,沒有很多好的解決方案。你也許能夠找到一個預先製作的表單驗證器或其他東西,但它可能只是使用正則表達式。正則表達式只是在字符串中搜索模式的一種簡單方法,這就是您需要執行的驗證操作。如果你願意,你可以自己迭代它們,但這正是regex爲你簡化爲一個PHP的班輪:) – Paulpro

0

您可以使用內置的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+