Что было бы php эквивалентом этого кода? - PullRequest
1 голос
/ 11 мая 2011
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 ]

4 голосов
/ 11 мая 2011

replace() можно заменить на preg_replace ()

и match() будут preg_match () , что очень мощно

Проверьте руководство, чтобы увидеть, как оно будет работать с вашим кодом, они не так уж отличаются, и вы также можете использовать функцию обратного вызова.

2 голосов
/ 11 мая 2011

Похоже, вы анализируете HTML с помощью регулярных выражений.

В этом случае PHP предоставляет DOMDocument , что очень хорошо для манипулирования DOM. Вы можете использовать его, чтобы убедиться, что ваша строка содержит safe HTML.

Более конкретное доменное решение - Очиститель HTML .

...