我有几个字符串构成一个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