错误记录PHP preg_match(): Compilation failed: range out of order in character class at offset 7 01_login.php</b> on line <b>13</b><br />

 1 <?php
 2 //响应头格式为json,编码为uft-8,注意有-
 3     header("Content-Type:application/json;charset=utf-8");
 4 //    require_once("00_init.php");
 5 //创建数据库的连接mysqli_connect如果写成mysql_connect()会出现access denied拒绝访问;
 6     $conn=mysqli_connect("127.0.0.1","root","","xz",3306);
 7 //设置编码为utf8,注意这里没有-因为MySQL对这个起名叫utf8,因为在做这个数据库时写错了,因此编码写成utf8
 8     mysqli_query($conn,"SET NAMES UTF8");
 9     //获取用户参数aname和apwd,@可以防止报错
10     @$aname=$_REQUEST["aname"];
11     @$apwd=$_REQUEST["apwd"];
12     $n_reg='/^[a-zo-9A-Z]{3,8}$/';
13 $n=preg_match($n_reg,$aname);
14 $p=preg_match($n_reg,$apwd);

报错信息


1 <b>Warning</b>:  preg_match(): Compilation failed: range out of order in character class at offset 7 in 
  <b>C:xampphtdocsh5admindata1_login.php</b> on line <b>13</b><br /> 2 <br />
//报错原因是在13行的preg_match()函数中出现编译错误,错误内容是在第7个字符中出现了范围溢出,即正则表达式出错了,12行中的正则表达式中的0-9写成o-9;为啥不会是$aname错误而是正则呢?
//因为字符串的内容是随意的,它只是过来给正则进行匹配,符合返回true,不符合返回false。
 
原文地址:https://www.cnblogs.com/shuen/p/8872368.html