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