繁体   English   中英

尝试设置无效字符数组时出现语法错误

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM