[英]Syntax error trying to set up invalid character array
我是PHP的新手,我在本教程之后为我的网站设置了“成员区”。 页面底部附近的代码似乎有问题。
当尝试从用户名字段中挑选出无效字符时,将设置数组$ junk。
$junk = array('.' , ',' , '/' , '\' , '`' , ';' , '[' , ']' , '-', '_', '*', '&', '^',
'%', '$', '#', '@', '!', '~', '+', '(', ')', '|', '{', '}', '<', '>', '?', ':', '"', '=');
这段代码为我返回了语法错误。
现在,我的第一个想法是'#'或'('和')'引起了问题,因为它们通常用于html和php。 删除错误仍然返回错误。
我是php的新手,所以它很可能只是我遗漏的一些小语法错误。 任何输入都会很棒。 谢谢!
编辑:此外,如果有一个更简单的方法,请告诉我!
对于'\\'字符,你需要写它
'\\'
需要转义反斜杠: '\\\\'
。 那是因为\\'
给你一个文字撇号,否则你无法进入单引号字符串。
有一种更简单的方法可以做到这一点,正则表达式。 如果你想设置用户名只接受字母数字字符,
$ user = preg_replace(“/ [^ 0-9a-zA-Z] + /”,“”,$ user);
表达式基本上是说,用“”替换不是0-9,az,AZ的任何东西。 如果你想允许“@”,“。” (句号)和“ - ”和“_”符号:
$user = preg_replace("/[^0-9a-zA-Z\@\.\-\_]+/", "", $user);
正则表达式是一个非常强大的工具。 它们可以在大多数语言中使用,包括javascript和PHP。 因此值得花时间学习它们。
对于较小的数组,创建一个字符串,然后调用str_split将其作为字符数组。
$junk = str_split('.,/\\`;[]-_*&^%S#@!~+()|{}<>?:"=')
就个人而言,我会按以下顺序使用这些字符
~`!@#$%^&*()-_+={}[]\|;:'",.<>/?
因为这是他们在键盘上的方式。 但这只是一个小问题。 我知道原始字符串中缺少'(单引号)。
验证输入的更好方法涉及正则表达式。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.