簡體   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