php验证和验证字符串

php验证和验证字符串,php,authentication,Php,Authentication,我有两个字符串组成CustomerInfo对象。我想编写一个函数来验证每个字符串 例如,我有以下存储为字符串的值: 公寓号码 大街 城市 名称 电话 电子邮件 每一个都由服务器接收,它们需要存储在数据库中。但是,在此之前,我想验证携带这些值的字符串变量的内容 一般来说,我不熟悉PHP和服务器端编程。我想知道有什么好的,但简单的策略来实现这一点。 有人能给我指一些想法和链接吗 感谢您使用php检查字符串。如果您想使用这些正则表达式,但不熟悉正则表达式,您可以查看这一点,也可以在一个示例中搜索一个好

我有两个字符串组成CustomerInfo对象。我想编写一个函数来验证每个字符串

例如,我有以下存储为字符串的值: 公寓号码 大街 城市 名称 电话 电子邮件

每一个都由服务器接收,它们需要存储在数据库中。但是,在此之前,我想验证携带这些值的字符串变量的内容

一般来说,我不熟悉PHP和服务器端编程。我想知道有什么好的,但简单的策略来实现这一点。 有人能给我指一些想法和链接吗


感谢您使用php检查字符串。如果您想使用这些正则表达式,但不熟悉正则表达式,您可以查看这一点,也可以在一个示例中搜索一个好的正则表达式。这个示例显示了用于的正则表达式。

在php中,您可以使用它来检查字符串。如果您想使用这些正则表达式,但不熟悉正则表达式,您可以查看这一点,也可以在示例中搜索一个好的正则表达式。此示例显示了用于的正则表达式。

这就是正则表达式的用途。满足您可能想阅读关于正则表达式的文章:当您精通正则表达式时,请记住,正则表达式不能做任何事情。它们只能解析常规语言。有时候,人们会忘乎所以,试图用正则表达式做太多的事情,所以这只是一个警告。下面是一个简单的用法示例:

if(!preg_match('/^[\w.%+-]+@[\w.-]+\.[A-Z]{2,5}$/i', $email)){
    // Email is unvalid.
    // Handle it here
}
模式/^[\w.%+-]+@[\w.-]+\.[A-Z]{2,5}$/i可以分解如下:

/->分隔符,可以使用任何字符

^->字符串的开头

[\w.%+-]+->集合[\w.%+-]中的一个或多个+字符,该集合允许单词字符、字母、下划线和任何符号。%+-'

@->单个@符号

[\w.-]+->一个或多个单词字符点或连字符

\.->单点

[A-Z]{2,5}->2-5个大写字母

$->字符串结尾

/->End delimeter正则表达式的End


i->不区分大小写的修饰符这意味着我以前使用A-Z的地方现在也将匹配A-Z

这就是正则表达式有用的地方。满足您可能想阅读关于正则表达式的文章:当您精通正则表达式时,请记住,正则表达式不能做任何事情。它们只能解析常规语言。有时候,人们会忘乎所以,试图用正则表达式做太多的事情,所以这只是一个警告。下面是一个简单的用法示例:

if(!preg_match('/^[\w.%+-]+@[\w.-]+\.[A-Z]{2,5}$/i', $email)){
    // Email is unvalid.
    // Handle it here
}
模式/^[\w.%+-]+@[\w.-]+\.[A-Z]{2,5}$/i可以分解如下:

/->分隔符,可以使用任何字符

^->字符串的开头

[\w.%+-]+->集合[\w.%+-]中的一个或多个+字符,该集合允许单词字符、字母、下划线和任何符号。%+-'

@->单个@符号

[\w.-]+->一个或多个单词字符点或连字符

\.->单点

[A-Z]{2,5}->2-5个大写字母

$->字符串结尾

/->End delimeter正则表达式的End


i->不区分大小写修饰符这意味着我以前使用的A-Z现在也将匹配A-Z

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

您可以使用内置PHP过滤器执行标准验证:

http://php.net/manual/en/filter.filters.validate.php

// Example:
if (filter_var($email_input, FILTER_VALIDATE_EMAIL) !== false) {
    // Invalid e-mail!
}

请注意,这仅适用于PHP5.2+

preg_match等人来到mindpreg_match等人来到MindPro非常感谢。我感谢你详细的回答和链接。很高兴能让我开始学习。除了正则表达式还有其他选择吗?@user657514除了正则表达式之外,没有其他好的解决方案。您可能会找到一个预先制作的表单验证器或其他东西,但它可能只是使用regex。正则表达式只是在字符串中搜索模式的一种简单方法,这是验证模式所需的操作。如果您愿意,您可以自己迭代它们,但这就是regex为您简化为PHP一行程序的地方:我明白了,非常感谢。我之所以这么问,是因为数据来自移动设备,我想知道是应该在设备级还是服务器级或两者都验证数据。@user657514我建议两者都验证,但这取决于具体情况。出于安全原因,服务器端验证是至关重要的。客户端验证可以让用户体验更好,因为您可以立即进行验证,他们可以修复错误,而无需等待整个页面重新加载。非常感谢。我感谢你详细的回答和链接。很高兴能让我开始学习。除了正则表达式还有其他选择吗?@user657514除了正则表达式之外,没有其他好的解决方案。您可能会找到一个预先制作的表单验证器或其他东西,但它可能只使用regex
方式。正则表达式只是在字符串中搜索模式的一种简单方法,这是验证模式所需的操作。如果您愿意,您可以自己迭代它们,但这就是regex为您简化为PHP一行程序的地方:我明白了,非常感谢。我之所以这么问,是因为数据来自移动设备,我想知道是应该在设备级还是服务器级或两者都验证数据。@user657514我建议两者都验证,但这取决于具体情况。出于安全原因,服务器端验证是至关重要的。客户端验证可以让用户体验更好,因为您可以立即验证,他们可以修复错误,而无需等待整个页面重新加载。非常感谢您的链接。我会看一遍。非常感谢你的链接。我会仔细检查的。