什么是PHP相当于这段代码?

时间:2011-05-11 05:58:51

标签: php javascript regex equivalent

var okTags = /^(<\/?(b|blockquote|code|del|dd|dl|dt|em|h1|h2|h3|i|kbd|li|ol|p|pre|s|sup|sub|strong|strike|ul)>|<(br|hr)\s?\/?>)$/i;

var okLinks = /^(<a\shref="(\#\d+|(https?|ftp):\/\/[-A-Za-z0-9+&@#\/%?=~_|!:,.;\(\)]+)"(\stitle="[^"<>]+")?\s?>|<\/a>)$/i;


var okImg = /^(<img\ssrc="https?:(\/\/[-A-Za-z0-9+&@#\/%?=~_|!:,.;\(\)]+)"(\swidth="\d{1,3}")?(\sheight="\d{1,3}")?(\salt="[^"<>]*")?(\stitle="[^"<>]*")?\s?\/?>)$/i;


text = text.replace(/<[^<>]*>?/gi, function (tag) {
                    return (tag.match(okTags) || tag.match(okLinks) || tag.match(okImg)) ? tag : ""
                })

2 个答案:

答案 0 :(得分:4)

replace()可以替换为preg_replace()

match()preg_match()非常强大

查看手册以了解它如何与您的代码一起使用,它们没有那么不同,您也可以使用回调功能。

答案 1 :(得分:2)

看起来你正在用正则表达式解析HTML。

在这种情况下,PHP提供了DOMDocument,这对于进行DOM操作非常有用。您可以使用它确保您的字符串包含安全 HTML。

更具域名的解决方案是HTML Purifier