我正在尝试基本建立一个网站,以便共享示例代码和评论。我的问题是避免使用任何标签/脚本,除了img和一些非常常见的标签/脚本,例如我...我尝试了不同的解决方案但是在某一点上所有的堆栈:如果用户使用<不是标签,意思是不到......
首先启动我的代码,将
标签拆分,将其他地方拆分为标签,将htmlspecialchars拆分为代码部分然后重新合并。但是,如果用户使用<在文本部分的任何地方,它都会删除帖子,直到它看到>。 (还尝试通过在<之后放置一个空格来避免strip_tags擦除,但无法找到识别它是标记还是少于标记的方法
然后我向后试了一下。对所有帖子使用htmlspecialchars并将特定的更改回标签外观。这次我遇到了所有替换功能的问题,因为它们中的一些没有正常工作或彼此重叠。我觉得有一个简单的解决方案,但我无法看到正确的角度。有什么建议 ?
$yazi = htmlspecialchars($_POST["yazi"]);
$yazi = str_replace('<a href="', '<a href"', $yazi);
$yazi = str_replace('</a>', '</a>', $yazi);
$yazi = str_replace('<code>','<code>', $yazi);
$yazi = str_replace('</codea>', '</code>', $yazi);
$yazi = str_replace('<br>', '<br>', $yazi);
$yazi = str_replace('<i>', '<i>', $yazi);
$yazi = str_replace('</i>', '</i>', $yazi);
$yazi = str_replace('<b>','<b>',$yazi);
$yazi = str_replace('</b>','</b>',$yazi);
$yazi = str_replace('<p>','<p>',$yazi);
$yazi = str_replace('</p>','</p>',$yazi);
$yazi = str_replace('<img src="', '<img src="', $yazi);
$yazi = str_replace('"/>', '"/>', $yazi);
$yazi = str_replace('" />', '" />', $yazi);
$yazi = str_replace('">', '">', $yazi);
$yazi = str_replace('" >', '" >', $yazi);