比如说用户提交了一个电话,或者提交了一个邮箱,我们怎么才能知道它是不是正确的电话和邮箱格式。
用正则表达式来匹配。PHP提供了一种强大的方法创建和匹配文本中的模式。可以创建一些规则来查找串的模式,这个规则就成为正则表达式。/^\d\d\d\d\d\d\d\d\d\d$/;//^表示从串的考试出开始匹配。所有正则表达式都以斜线开头和结尾。\d代表数字,总共10个数字$符号表示串必须结束。海域如下简便写法/^\d{10)&/;//大括号用于指示重复。
\d一个数字。\w表示任意字符数字字符。包含a-z和A-Z大小写字母以及0-9.\s查找空白符。这不只是按下空格键在屏幕上显示的空格字符,还能匹配制表符换行或回车符。这些字符都一次只匹配一个字符。^它会查找一个文本串的开始位置。它指示必须从一个文本串的起始位置开始匹配,而不是串中的任何其他位置。“.”点元字符可以匹配除换行符以外的任意一个字符。它能匹配字母或者数字。还可以匹配空格和制表符。$查找串尾,可以结合^使用这个元字符确定匹配的范围,指定匹配究竟从哪里考试到哪里结束。如果你希望正则表达式中有一个特定的字符,只需要直接在表达式中使用该字符即可。
/^\d{10}$/;在这里,大括号相等于一个量词,指出前面的数字应该出现多少次,除了这些还有另外的一些常用量词{min,max}如果大括号里有俩个数字,并用一个逗号分隔,这指示了前面的字符或者元素符号重复次数的范围。+\\前面的字符或元字符必须重复1次或多次。*字符或元字符可以出现1次或多次或者根本不出下面。\\我自己也没理解这个到底有什么用。?前面的字符或元字符必须出现1次或者根本不出现。在字符类中使用^有一个特殊的含义,表示匹配除。。。以外的字符。
/^[2-9]\d{2}-\d{3}3-\d{4}$/;\\^和$指定正则表达式必须包含所匹配的整个文本串。换句话说,串不能包含不属于它的其他任何字符。字符类2-9指出第一个字符必须是2到9包括2和9中的任何数字。。。
preg_match($regex,$mystring)函数可以取一个正则表达式模式和一个文本串,如果没有匹配函数就会返回false否则为ture;
preg_replace($pattern,$replacement,$my_string)//这个函数非常类似与前面使用的str_replace()函数,只不过这里使用正则表达式而不是串来完成匹配,第一个参数,需要查找这些不想要的字符。第二个参数,找到一个不想要的字符时,希望把它替换为这个模式。第三个参数,要完成查找替换的总串。
PHP检查邮箱地址
php提供checkdnsrr()函数来坚持一个域是否合法。与使用正则表达式匹配一个email地址模式相比,这个方法甚至更好,因为它不只检查一个文本串是否可能是一个合法的email域,还会具体检查DNS记录,得出这个域是否已经注册。
这个命令在windows服务器上运行php是不起作用的。可以使用exec函数来调用服务器上的一个外部程序检查。
我自己写一个小网站www.caozhicong.com