Preg_replace&,;和#

时间:2012-07-22 13:53:50

标签: php codeigniter preg-replace

我使用以下PHP代码来逃避用户输入但是&,#和;无法转义,因为这些也用于其他特殊字符的代码中。这是我的代码

>$data = preg_replace("/</", "&lt;", $data);
>$data = preg_replace("/>/", "&gt;", $data);
>$data = preg_replace("/\"/", "&quot;", $data);
>$data = preg_replace("/\(/", "&#40;", $data);
>$data = preg_replace("/\)/", "&#41;", $data);
>$data = preg_replace("/'/", "&#39;", $data);
>$data = preg_replace("/{/", "&#123;", $data);
>$data = preg_replace("/}/", "&#125;", $data);
>$data = preg_replace("/\`/", "&#96;", $data);//tick mark
>$data = preg_replace("/\[/", "&#91;", $data);
>$data = preg_replace("/\]/", "&#93;", $data);
>$data = preg_replace("/\=/", "&#61;", $data);

你能告诉我如何逃避&amp;,#和;没有令人不安的其余代码。如果你可以指导我到相关的帖子,我肯定已经多次询问过。此外,如果某个firend已经创建了自己的代码/模块/类来进行转义,那将非常酷

1 个答案:

答案 0 :(得分:3)

您最好使用htmlentites(),这将为您完成所有工作:

$data = htmlentities($data, ENT_QUOTES);

Documentations here