您可以使用htmlentities()
將html元素轉換爲html實體,並且此函數接受用於轉義單引號和雙引號的第三個參數。
下面是函數的簽名:
string htmlentities (string $string [, int $flags = ENT_COMPAT [, string $charset [, bool $double_encode = true ]]])
和第二參數可以接受的參數:
ENT_COMPAT將其轉換雙引號和獨自離開單引號。
ENT_QUOTES將轉換雙引號和單引號。
ENT_NOQUOTES將保留雙引號和單引號未轉換。
ENT_IGNORE默默地丟棄無效的代碼單元序列,而不是返回空字符串。在PHP 5.3.0中添加。這是爲了向後兼容而提供的;避免使用它,因爲它可能有安全隱患。
而
您可以簡單地使用addslashes()
與htmlentities()
,也存在與清洗另一個功能HTML代碼這是場標記出來filter_var()
和這樣的例子看是:
$ return_value = filter_var($data_to_be_filtered,FILTER_SANITIZE_STRING);
重要
不要忘記檢查magic_quotes是否啓用。您可以通過書面形式是:
if(get_magic_quotes_gpc())
//do something
更多magic_quotes的:http://www.php.net/manual/en/info.configuration.php#ini.magic-quotes-gpc
編輯:
您可以通過使用準備好的語句做更安全的交易。他們防止SQL注入。
示例代碼:
$db = new mysqli();
$db->real_connect($host,$username,$password,$db) or die("Cannot connect");
$query = "select name from users where id = ?";
$st = $db->prepare($query); //faster than normal query run
$st->bind_param("d",$id);
$st->execute();
$st->bind_result($name);
$st->fetch();
echo $name;
@Kerrek:回答一些他的問題。 –
給我一個正確的答案;) – vick