2013-07-29 68 views
0

我有關於filter如何過濾html字符?

我有以下問題:

$htmlData包含用戶輸入html字符串,它像

$htmlData = array('<em>test</em>', 'text here','\n') 

//I use htmlspecialchars function and want to filter \n out and save it to DB. 

     $texts = htmlspecialchars($htmlData[$i]); 

     if(!empty($texts) && $text != '\n'){ 
      echo $text; //I still see '\n' here for some reason. 
     } 

我不想'\n'保存到數據庫,因爲它只會在DB中空白。無論如何要阻止這一點?謝謝您的幫助!

+0

哪裏$我在你的代碼來自哪裏? –

+0

這是一個循環var循環通過我的htmlData – FlyingCat

回答

1

使用trim()

該函數返回空白從 開始和STR的端部剝離的字符串。如果沒有第二個參數,修剪()將 剝離這些字符:

" " (ASCII 32 (0x20)), an ordinary space. 
"\t" (ASCII 9 (0x09)), a tab. 
"\n" (ASCII 10 (0x0A)), a new line (line feed). 
"\r" (ASCII 13 (0x0D)), a carriage return. 
"\0" (ASCII 0 (0x00)), the NUL-byte. 
"\x0B" (ASCII 11 (0x0B)), a vertical tab 

其他的解決方案是指這樣一個問題:Remove new lines from string

1

$text != '\n'將只檢查字符串是否包含一個反斜槓後跟字母「N」。你想要比較它是一個換行符,所以你必須改用$text != "\n"

另見http://php.net/manual/en/language.types.string.php#language.types.string.syntax.double

+0

我同意你的看法,但其他空格也可能與'\ n' – 2013-07-30 00:17:50

+0

這應該是公認的答案。目前接受的答案會過濾掉所有的空格,而OP僅表示他想要過濾出包含換行符的數組中的值。 –