| Автор |
Сообщение |
Rin
Участник форума

Зарегистрирован: 01.06.2005
Сообщ.: 463
Карма: 120 поощрить/наказать
Откуда: Москва
|
Добавлено: Ср Фев 22, 2006 3:04 pm (написано за 22 минуты 11 секунд)
Заголовок сообщения: strip_tags_smart: корректный аналог strip_tags()
|
|
Более продвинутый аналог strip_tags() для корректного вырезания тагов из html кода. Функция strip_tags(), в зависимости от контекста, может работать не корректно. Воможности:- корректно обрабатываются вхождения типа "a < b > c"
- корректно обрабатывается "грязный" html, когда в значениях атрибутов тагов могут встречаться символы < >
- корректно обрабатывается разбитый html
- вырезаются комментарии, скрипты, стили, PHP, Perl, ASP код, MS Word таги
- автоматически форматируется текст, если он содержит html код
- защита от подделок типа: "<<fake>script>alert('hi')</</fake>script>"
. Скачать последнюю версию strip_tags_smart() здесь
Возможно, Вам будут интересны мои другие готовые решения: You may be interested in my other ready-made solutions:- A package of PHP functions to manipulate strings encoded in UTF-8
- MysqlRapid
- TreeNS
- RevisionDB
- WordsFakeFix
- Yoficator
- TextParser
- FileCache
- PHP_MergePostFiles
- Table
- PHPTemplate
- Optimize
- Password
| Описание: |
|
 Скачать |
| Имя файла: |
strip_tags_smart-4.0.14.7z |
| Размер: |
2,74 KB |
| Скачали: |
1667 раз(а) |
Последний раз редактировалось: Rin (Пт Фев 05, 2010 11:14 am), всего редактировалось 28 раз(а)
|
|
| Вернуться к началу |
|
 |
Maus
Модератор

Зарегистрирован: 29.06.2003
Сообщ.: 7222
Карма: 218 поощрить/наказать
Откуда: пос. Омсукчан Магаданской области
|
Добавлено: Пн Фев 27, 2006 2:23 pm (спустя 4 дня 23 часа 19 минут; написано за 12 секунд)
Заголовок сообщения:
|
|
|
|
|
| Вернуться к началу |
|
 |
Rin
Участник форума

Зарегистрирован: 01.06.2005
Сообщ.: 463
Карма: 120 поощрить/наказать
Откуда: Москва
|
Добавлено: Ср Мая 30, 2007 1:57 pm (спустя 1 год 3 месяца 2 дня 23 часа 34 минуты; написано за 25 секунд)
Заголовок сообщения:
|
|
Всем, кто использует эту функцию, рекомендуется обновиться. Добавлена защита от подделок типа: "<<fake>script>alert('hi')</</fake>script>"
|
|
| Вернуться к началу |
|
 |
Гость
Карма: 354 поощрить/наказать
|
Добавлено: Пн Июл 16, 2007 9:52 am (спустя 1 месяц 16 дней 19 часов 55 минут; написано за 29 секунд)
Заголовок сообщения:
|
|
| Может, имело смысл написать данный аналог на C?
|
|
| Вернуться к началу |
|
 |
Птицъ
Гость
Карма: 354 поощрить/наказать
|
Добавлено: Вт Авг 07, 2007 11:09 am (спустя 22 дня 1 час 16 минут; написано за 1 минуту 18 секунд)
Заголовок сообщения:
|
|
Первая проверка, работает неплохо, НО не обрабатывает след. код последний " лишний, но всё-же.
|
|
| Вернуться к началу |
|
 |
Rin
Участник форума

Зарегистрирован: 01.06.2005
Сообщ.: 463
Карма: 120 поощрить/наказать
Откуда: Москва
|
Добавлено: Ср Авг 08, 2007 6:22 pm (спустя 1 день 7 часов 13 минут; написано за 1 минуту 7 секунд)
Заголовок сообщения:
|
|
Спасибо за замечание. Я добавил корректную обработку разбитого HTML кода.
|
|
| Вернуться к началу |
|
 |
MaxF
Гость
Карма: 354 поощрить/наказать
|
Добавлено: Ср Окт 17, 2007 2:06 pm (спустя 2 месяца 8 дней 19 часов 43 минуты; написано за 1 минуту 5 секунд)
Заголовок сообщения:
|
|
Warning: preg_replace_callback() requires argument 2, 'strip_tags_smart', to be a valid callback in ... не подскажете, в чем причина ругни? функцию не изменял, как есть 4.0.3 вставил в свой код и вот что получаю при вызове для строки <b>MaxF
|
|
| Вернуться к началу |
|
 |
Rin
Участник форума

Зарегистрирован: 01.06.2005
Сообщ.: 463
Карма: 120 поощрить/наказать
Откуда: Москва
|
Добавлено: Чт Окт 18, 2007 11:18 am (спустя 21 час 12 минут; написано за 1 минуту 18 секунд)
Заголовок сообщения:
|
|
Очень странная ошибка, у Вас PHP вообще нормально работает? Попробуйте поставить более новую версию (5.2.x)
|
|
| Вернуться к началу |
|
 |
resistance
Гость
Карма: 354 поощрить/наказать
|
Добавлено: Пн Ноя 12, 2007 3:39 pm (спустя 25 дней 4 часа 20 минут; написано за 2 минуты 27 секунд)
Заголовок сообщения:
|
|
| MaxF писал(а): |
Warning: preg_replace_callback() requires argument 2, 'strip_tags_smart', to be a valid callback in ... не подскажете, в чем причина ругни? функцию не изменял, как есть 4.0.3 вставил в свой код и вот что получаю при вызове для строки <b>MaxF |
если функция является методом класса, то строчку
надо заменить на
|
|
| Вернуться к началу |
|
 |
сэрйога
Гость
Карма: 354 поощрить/наказать
|
Добавлено: Вт Ноя 20, 2007 2:30 pm (спустя 7 дней 22 часа 51 минуту; написано за 34 секунды)
Заголовок сообщения:
|
|
| Хм... Классно, только форматирование блоков <pre> ломается. Не надо бы из них переводы строки убирать...
|
|
| Вернуться к началу |
|
 |
Rin
Участник форума

Зарегистрирован: 01.06.2005
Сообщ.: 463
Карма: 120 поощрить/наказать
Откуда: Москва
|
Добавлено: Ср Янв 16, 2008 5:19 pm (спустя 1 месяц 26 дней 2 часа 49 минут; написано за 6 секунд)
Заголовок сообщения:
|
|
| 4.0.5 Добавлена корректная обработка содержимого тагов <pre></pre>
|
|
| Вернуться к началу |
|
 |
Paul_Codiny
Гость
Карма: 354 поощрить/наказать
|
Добавлено: Чт Фев 07, 2008 6:48 pm (спустя 22 дня 1 час 28 минут; написано за 17 секунд)
Заголовок сообщения:
|
|
| давно пора было сказать спасибо;)
|
|
| Вернуться к началу |
|
 |
just4fun
Заглянувший
Зарегистрирован: 16.12.2004
Сообщ.: 3
Карма: 0 поощрить/наказать
|
Добавлено: Пт Фев 08, 2008 8:55 pm (спустя 1 день 2 часа 6 минут; написано за 1 минуту 16 секунд)
Заголовок сообщения:
|
|
дкЛаб на весь рунет работает. За все спасибо забанят как спамера :) Спасибо дкЛаб!
|
|
| Вернуться к началу |
|
 |
Rin
Участник форума

Зарегистрирован: 01.06.2005
Сообщ.: 463
Карма: 120 поощрить/наказать
Откуда: Москва
|
Добавлено: Пт Фев 08, 2008 10:22 pm (спустя 1 час 27 минут; написано за 11 секунд)
Заголовок сообщения:
|
|
| Спасибо! :)
|
|
| Вернуться к началу |
|
 |
KonstRuctor
Заглянувший
Зарегистрирован: 22.05.2006
Сообщ.: 7
Карма: 0 поощрить/наказать
|
Добавлено: Чт Мар 27, 2008 3:10 am (спустя 1 месяц 18 дней 4 часа 48 минут; написано за 1 минуту 8 секунд)
Заголовок сообщения:
|
|
Почему-то выдает ошибку Parse error: parse error, unexpected T_ARRAY, expecting '&' or T_VARIABLE or T_CONST in z:\home\site\www\inc\strip_tags_smart.php on line 33 Вызываю $a = strip_tags_smart($a);
|
|
| Вернуться к началу |
|
 |
Rin
Участник форума

Зарегистрирован: 01.06.2005
Сообщ.: 463
Карма: 120 поощрить/наказать
Откуда: Москва
|
Добавлено: Чт Мар 27, 2008 10:23 am (спустя 7 часов 12 минут; написано за 12 секунд)
Заголовок сообщения:
|
|
| Функция работает в PHP5.
|
|
| Вернуться к началу |
|
 |
KonstRuctor
Заглянувший
Зарегистрирован: 22.05.2006
Сообщ.: 7
Карма: 0 поощрить/наказать
|
Добавлено: Чт Мар 27, 2008 3:04 pm (спустя 4 часа 41 минуту; написано за 34 секунды)
Заголовок сообщения:
|
|
Обидно-досадно... будем юзать пока обычный strip_tags. Счастье было близко
|
|
| Вернуться к началу |
|
 |
eternalko
Участник форума
Зарегистрирован: 06.01.2008
Сообщ.: 28
Карма: 0 поощрить/наказать
|
|
| Вернуться к началу |
|
 |
Blagotvor
Участник форума
Предупреждений: 1

Зарегистрирован: 17.10.2007
Сообщ.: 20
Карма: -2 поощрить/наказать
Откуда: Россия, пос. Белоомут
|
Добавлено: Вт Июл 01, 2008 1:58 pm (спустя 2 месяца 29 дней 15 часов 39 минут; написано за 3 минуты 28 секунд)
Заголовок сообщения:
|
|
что-то разрешенные теги не пашут как надо! к примеру, есть текст вида:
| Код (html): |
скопировать код в буфер обмена |
<p style="text-align: justify;">При составлении описания для ссылки, постарайтесь составить полноценную статью характеризующую страницу, которая принадлежит публикуемой ссылке. Будьте предельно грамотны и внимательны к мелочам, тщательно проверяйте набранный текст, используйте теги <strong>bbCode </strong> для форматирования. В случае безответственного отношения к составлению описания для ссылок, Вам будет отказано в их активации! <span style="text-decoration: underline;">Минимально допустимое </span> количество слов в описании 50. </p> |
имеем в конфигурации ($conf) список допустимых тегов "p,a,img,table,center,span,strong". вызываем функцию:
на выходе получается:
| Код (html): |
скопировать код в буфер обмена |
<p style="\">При составлении описания для ссылки, постарайтесь составить полноценную статью характеризующую страницу, которая принадлежит публикуемой ссылке. Будьте предельно грамотны и внимательны к мелочам, тщательно проверяйте набранный текст, используйте теги <strong>bbCode</strong> для форматирования. В случае безответственного отношения к составлению описания для ссылок, Вам будет отказано в их активации! <span style="\">Минимально допустимое</span> количество слов в описании 50.</p> |
|
|
| Вернуться к началу |
|
 |
Rin
Участник форума

Зарегистрирован: 01.06.2005
Сообщ.: 463
Карма: 120 поощрить/наказать
Откуда: Москва
|
Добавлено: Ср Окт 15, 2008 11:39 am (спустя 3 месяца 13 дней 21 час 41 минуту; написано за 52 секунды)
Заголовок сообщения:
|
|
| Последние изменения strip_tags_smart() здесь
|
|
| Вернуться к началу |
|
 |
Golovoed
Гость
Карма: 354 поощрить/наказать
|
Добавлено: Ср Июл 22, 2009 11:39 pm (спустя 9 месяцев 7 дней 12 часов 16 секунд; написано за 53 секунды)
Заголовок сообщения:
|
|
HTML Код
| Код (html): |
скопировать код в буфер обмена |
Как сообщили в пресс-службе, <b style="color: red; font-size: 30px;">закрытие трубопровода в ходе </b> телефонного разговора обсудили вице-премьеры России и Белоруссии Игорь Сечин и Владимир Семашко. |
PHP
не удаляет
|
|
| Вернуться к началу |
|
 |
Rin
Участник форума

Зарегистрирован: 01.06.2005
Сообщ.: 463
Карма: 120 поощрить/наказать
Откуда: Москва
|
Добавлено: Пн Авг 03, 2009 11:31 am (спустя 11 дней 11 часов 51 минуту; написано за 16 секунд)
Заголовок сообщения:
|
|
| Blagotvor, Golovoed скачайте последнюю версию
|
|
| Вернуться к началу |
|
 |
Golovoed
Гость
Карма: 354 поощрить/наказать
|
Добавлено: Ср Авг 05, 2009 3:38 pm (спустя 2 дня 4 часа 7 минут; написано за 43 секунды)
Заголовок сообщения:
|
|
| Rin писал(а): |
|
Blagotvor, Golovoed скачайте последнюю версию |
это в последней версии так файл utf8_functions_2009-06-24.7z
|
|
| Вернуться к началу |
|
 |
Rin
Участник форума

Зарегистрирован: 01.06.2005
Сообщ.: 463
Карма: 120 поощрить/наказать
Откуда: Москва
|
Добавлено: Ср Авг 05, 2009 6:55 pm (спустя 3 часа 16 минут; написано за 32 секунды)
Заголовок сообщения:
|
|
| загрузите файл в этой теме
|
|
| Вернуться к началу |
|
 |
evol
Гость
Карма: 354 поощрить/наказать
|
Добавлено: Чт Сен 03, 2009 11:58 pm (спустя 29 дней 5 часов 3 минуты; написано за 4 минуты 4 секунды)
Заголовок сообщения: Проблема обработки object+embed
|
|
Пару замечаний к отличной функции strip_tags_smart: 1. Некорректно вырезается код вставки плееров из тытрубы и аналогов. Пример:
| Код (html): |
скопировать код в буфер обмена |
<OBJECT width="470" height="353"><PARAM name="movie" value="http://video.rutube.ru/21b7f280d33f3350663ba451372bd5c5"></PARAM><PARAM name="wmode" value="window"></PARAM><PARAM name="allowFullScreen" value="true"></PARAM><EMBED src="http://video.rutube.ru/21b7f280d33f3350663ba451372bd5c5" type="application/x-shockwave-flash" wmode="window" width="470" height="353" allowFullScreen="true" ></EMBED></OBJECT> |
...мочится начисто при вызове:
| Код (php): |
скопировать код в буфер обмена |
$s=strip_tags_smart ( stripslashes( $values['body'] ), array("br", "i", "b", "em", "u", "sup", "sub", "a", "strike", "hr", "p", "object", "embed", "ol", "ul", "li", "dl", "dt", "dd", "table", "tbody", "thead", "tr", "td", "div", "img", "cite", "big", "font", "span", "h1", "h2", "h3", "h4", "h5", "h6", "small", "strong", "th", "abbr", "acronym", "blockquote", "caption", "code", "col", "colgroup", "del", "dfn", "ins", "kbd", "label", "nobr", "param", "pre", "q", "tbody", "tt", "var", "tfoot") ); |
2. Не учитывается закрытость-открытость тега. Это скорее не проблема, а недостающая фича. Если пост в форум-блог-комментарий допускает Р или А, то отсутствие его пары выворачивает наизнанку оставшееся в живых. Мы если напишем парсер, поможем сообществу и кинем, но а вдруг уже есть? Спасибо за полезную функцию
|
|
| Вернуться к началу |
|
 |
Rin
Участник форума

Зарегистрирован: 01.06.2005
Сообщ.: 463
Карма: 120 поощрить/наказать
Откуда: Москва
|
Добавлено: Сб Сен 05, 2009 2:08 pm (спустя 1 день 14 часов 10 минут; написано за 5 минут 40 секунд)
Заголовок сообщения:
|
|
Ваше жаргонное сообщение непонятно. Сообщение об ошибке пишется примерно так: 1) краткое описание ошибки 2) пример PHP скрипта 3) актуальные данные на входе 4) актуальные данные на выходе 5) ожидаемые данные на выходе
|
|
| Вернуться к началу |
|
 |
CoooLLer
Гость
Карма: 354 поощрить/наказать
|
Добавлено: Пт Сен 11, 2009 4:59 pm (спустя 6 дней 2 часа 50 минут; написано за 40 секунд)
Заголовок сообщения:
|
|
| Возможно ли доработать функцию чтобы некоторые атрибуты тегов не удалялись, например colspan rowspan у тегов td tr?
|
|
| Вернуться к началу |
|
 |
Rin
Участник форума

Зарегистрирован: 01.06.2005
Сообщ.: 463
Карма: 120 поощрить/наказать
Откуда: Москва
|
Добавлено: Пт Сен 11, 2009 8:55 pm (спустя 3 часа 55 минут; написано за 21 секунду)
Заголовок сообщения:
|
|
| Возможно, но не при моём участии :)
|
|
| Вернуться к началу |
|
 |
misha_2002
Гость
Карма: 354 поощрить/наказать
|
Добавлено: Ср Сен 16, 2009 9:37 pm (спустя 5 дней 42 минуты; написано за 2 минуты 27 секунд)
Заголовок сообщения:
|
|
За скрипт спасибо. Но у меня такая же проблема, как у Golovoed и Blagotvor. Не удаляет "style" из ссылок. Скачивал скрипт из этой темы, а также отсюда http://forum.dklab.ru/viewtopic.php?t=17146 ... Текст у меня в кодировке Windows-1251 (если это имеет значение).
|
|
| Вернуться к началу |
|
 |
misha_2002
Гость
Карма: 354 поощрить/наказать
|
Добавлено: Ср Сен 16, 2009 10:08 pm (спустя 31 минуту; написано за 1 минуту 31 секунду)
Заголовок сообщения:
|
|
Разобрался. В комментарии все написано... "Пример: 'b' -- таг останется с атрибутами, '<b>' -- таг останется без атрибутов" Правда, из ссылок удаляется всё, остается только <a>текст ссылки</a> :)
|
|
| Вернуться к началу |
|
 |
Гость
Карма: 354 поощрить/наказать
|
Добавлено: Пт Сен 18, 2009 5:41 pm (спустя 1 день 19 часов 32 минуты; написано за 23 минуты 58 секунд)
Заголовок сообщения: Re: strip_tags_smart: корректный аналог strip_tags()
|
|
| Rin писал(а): |
|
Более продвинутый аналог strip_tags() для корректного вырезания тагов из html кода. |
Правильно писать тег, теги, тегов, тега. Я терпеть не могу маразматическое исключение, когда буква е не смягчает согласную, но все же это правило русского языка. А скрипт хороший, спасибо
|
|
| Вернуться к началу |
|
 |
Гость
Карма: 354 поощрить/наказать
|
Добавлено: Ср Янв 13, 2010 11:23 pm (спустя 3 месяца 25 дней 5 часов 42 минуты; написано за 1 минуту 3 секунды)
Заголовок сообщения:
|
|
Из-за чего может быть такая ошибка? preg_replace() [<a href='function.preg-replace'>function.preg-replace</a>]: Compilation failed: unrecognized character follows \ at offset 1227 in file /_admin/core/lib/strip_tags_smart.php line 163 strip_tags_smart($body, array('p','br','b','strong','i','em','u','ol','ul','li','a','img','sub','sup','strike')); на вход передаю примитивное "xxxx"
|
|
| Вернуться к началу |
|
 |
Rin
Участник форума

Зарегистрирован: 01.06.2005
Сообщ.: 463
Карма: 120 поощрить/наказать
Откуда: Москва
|
Добавлено: Чт Янв 14, 2010 12:09 am (спустя 46 минут; написано за 22 секунды)
Заголовок сообщения:
|
|
| старая версия PCRE, обновите PHP или PCRE
|
|
| Вернуться к началу |
|
 |
Гость
Карма: 354 поощрить/наказать
|
Добавлено: Чт Янв 14, 2010 8:04 am (спустя 7 часов 54 минуты; написано за 48 секунд)
Заголовок сообщения:
|
|
А какие у скрипта минимальные требования по PHP и PCRE? Какие версии ставить
|
|
| Вернуться к началу |
|
 |
Rin
Участник форума

Зарегистрирован: 01.06.2005
Сообщ.: 463
Карма: 120 поощрить/наказать
Откуда: Москва
|
Добавлено: Пн Янв 18, 2010 12:18 am (спустя 3 дня 16 часов 13 минут; написано за 12 секунд)
Заголовок сообщения:
|
|
| PCRE 7.2
|
|
| Вернуться к началу |
|
 |
Гость
Гость
Карма: 354 поощрить/наказать
|
|
| Вернуться к началу |
|
 |
|