0

我想从输入字符串中清除<>字符,以使其“网络安全”并避免脚本注入恶作剧。

我知道strip_tags()可以用于此,但这将导致这样的字符串:

We are looking at counts < 5000 for this test run被截断为:

We are looking at counts.

我想将其转换为:

We are looking at counts 5000 for this test run

这并不完美,但是这样会丢失字符串中的较少信息。

我知道这可以通过例如正则表达式来实现,但这有什么不安全的吗?我的意思是,strip_tags()<>是否对刚刚删除的正则表达式不会做的字符串做一些特殊的事情?

我暂时不想使用 htmlentities(),因为这会混淆我们的前端代码。

4

2 回答 2

1

如果您只想剥离<>使用以下代码执行此操作:

$str = 'We are looking at counts < 5000 for this test run';

$convertedBracketStr = str_replace(array('<', '>'), null, $str);

结果将是:We are looking at counts 5000 for this test run

于 2013-11-04T14:01:19.473 回答
0

http://php.net/manual/en/function.htmlspecialchars.php

这会将 <、> 和许多其他字符转换为它们的 HTML 实体,以便它们在页面上正确显示。

于 2013-11-04T13:48:17.123 回答