标签剥离允许一些HTML标签 - Facebook-ish

时间:2011-06-17 09:05:21

标签: php jquery html strip-tags oembed

我正在做一些事情,比如在本地应用程序中发布功能它真的很好但是它缺乏验证,更不用说我做的验证是一团糟。我正在使用jQuery oEmbed。

我想要的是打印非法的html标签,并激活/执行(我不知道正确的术语)我允许的html标签。

有什么建议吗?

1 个答案:

答案 0 :(得分:3)

这是我提出的最佳解决方案。

首先替换所有<和>对于HTML代码,然后替换回允许的标签。

<?php

$original_str = "<html><b>test</b><strong>teste</strong></html>";
$allowed_tags = array("b", "strong");

$sans_tags = str_replace(array("<", ">"), array("&lt;","&gt;"), $original_str);

$regex = sprintf("~&lt;(/)?(%s)&gt;~", implode("|",$allowed_tags));
$with_allowed = preg_replace($regex, "<\\1\\2>", $sans_tags);

echo $with_allowed;
echo "\n";

结果:

guax@trantor:~$ php teste.php 
&lt;html&gt;<b>test</b><strong>teste</strong>&lt;/html&gt

我想知道是否有任何解决方案可以立即更换所有内容。但它确实有效。