2011-07-24 182 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+