我对PHP完全不熟悉并且防止任何攻击并在我试图清理的变量中存储正确的值,修剪空格并删除任何非法字符。我有一个变量
$value = "this, <script></script>, 's 18in,";
上述变量包含许多不需要的字符,例如,
blank space
,<> tags
。
我想要做的是我想从字符串中删除所有无效字符,并使其成为纯字体字符串,只有字母或数字,如
$value = "thiss18in"; <= after sanitization
任何人都可以帮我解释这个逻辑吗?
答案 0 :(得分:2)
看到你可以使用这个逻辑:
$value = "this, <script></script>, 's 18in,";
$newString = trim(preg_replace('/[^a-z0-9]/i', '', $value));
如果preg_replace
函数将处理它的字符串中有任何空格,trim
将替换所有无效字符并仅提供纯格式的字符和数字字符串。
我已经从这个问题中引用并根据您的需要进行编辑。 Link =&gt; How do I write a regex in PHP to remove special characters?
答案 1 :(得分:1)
$value = "this, <script></script>, 's 18in,";
$value = strip_tags($value);
$newString = preg_replace('/[^a-z0-9]/i', '', $value);
echo $newString;
参考:How do I write a regex in PHP to remove special characters?
答案 2 :(得分:0)
尝试在现代php版本中使用php filter extension。
或者尝试将功能htmlentities,strip_tags和mysqli-real-escape-string结合起来。
我认为这是你能找到的最完整的答案。 What are the best PHP input sanitizing functions?