2011-06-17 121 views
0

我正在做一些類似於在本地應用程序中發佈功能的東西,它的工作很好,但它缺少驗證,更不用說我做的驗證是一團糟。我正在使用jQuery oEmbed。允許一些html標籤的標籤剝離 - Facebook-ish

我想要的是按照原樣打印非法的html標籤,並激活/執行(我不知道正確的術語)我允許的html標籤。

有什麼建議嗎?

回答

3

這是我想出的最佳解決方案。

首先將所有的<替換爲> for 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"; 

結果:

[email protected]:~$ php teste.php 
&lt;html&gt;<b>test</b><strong>teste</strong>&lt;/html&gt 

我不知道是否有更換一次全部的任何解決方案。但它的工作。

+0

哦,我沒有嘗試過這一個人。但無論如何,榮譽!我會測試你的腳本。 BTY! 謝謝你! – easyb 2011-06-20 05:57:11

+0

+1哇,非常感謝!這是一段非常棒的代碼,我一直在尋找這麼久。它很棒! – Nathan 2012-03-01 00:02:12