2011-08-14 83 views
3

如果我有這樣的如何過濾任何特殊字符

<form action="add.php" method="post"> 
<input type="text" name="txt" id="txt"> 
<input type="submit" name="submit" value="Submit"> 
</form> 

的add.php代碼如下形式輸入文本和

$sql= "insert into mytable set myname='$txt'"; 
executeupdate($sql); 

我的問題是如何從過濾任何文本輸入任何特殊字符我只想要它只有Aa-Zz-1234567890(字母和數字)。

這裏是我的嘗試,但我不知道它真過濾所有特殊字符或可以通過任何

我在add.php下面的代碼

$cleared = strip_tags($txt); 
$sql= "insert into mytable set myname='$cleared'"; 
executeupdate($sql); // this should clear the name before insert 

任何建議別的已經添加或更好的方式?

+0

你爲什麼想這樣做?是否有要求您的「文本」只包含字母數字字符,甚至不包括空格和標點符號或其他原因? – deceze

+2

'strip_tags'帶標籤,而不是非字母數字。您是否閱讀過文檔? –

回答

7
$whiteSpace = '\s'; //if you dnt even want to allow white-space set it to '' 
$pattern = '/[^a-zA-Z0-9' . $whiteSpace . ']/u'; 
$cleared = preg_replace($pattern, '', (string) $txt); 
+0

很高興它幫助你接受我的答案。 –

4

如果你只是想刪除所有非字母數字字符:

$new_str = preg_replace("/[^a-zA-Z0-9]/", "", $str); 
7
$txt = preg_replace('/[^a-zA-Z0-9]/', '', $txt); 

而且,沒有什麼 「特別的」 關於A-Z之外的字符,0-9範圍。

3

我會嘗試以下方法:

<?php 
    //Replace non-alphanumerics with an "" ie nothing 
    $cleared = preg_replace("/[^a-z0-9]/i", "", $txt); 
?> 

希望這個作品爲你!

相關問題