我使用php strip_tags()函数从我的文本区域输入中删除html标记并删除<脚本>用于防止脚本攻击的标签。
无论如何,用户通常需要输入事先不知道的XML标签。但是,我的strip_tags函数也正在删除这些良性xml标记,这是不可接受的。
另外,我有时会把文件名。< date> .png(必须在那里添加空格,因为StackOverflow也将其删除了lol)以指示文件名或路径的可变部分。在这种情况下,我最终得到的是在运行strip_tags之后的filename..png。
非常感谢任何帮助。
答案 0 :(得分:0)
无法使strip_tags
删除未知标记。您可能希望查看DOMDocument以寻找可行的替代方案。
答案 1 :(得分:0)
strip_tags()
定义为删除所有HTML / XML标记(第二个参数中指定的各个标记除外)。两种类型的标记之间没有区别,也没有区分它们和用作占位符的<date>
- 这三种标记看起来都像strip_tags()
的标记,所以它会删除它们。
答案 2 :(得分:0)
$s = preg_replace("/<\?xml(.*?)\?>/i", "<xmlDeclaration$1>", $s);
$s = strip_tags($s, '<xmlDeclaration><' . implode('><', $allowedTags) . '>');
$s = preg_replace("/<xmlDeclaration(.*?)>/i", "<?xml$1?>", $s);