![]() |
Модераторы: Aliance, skyboy, MoLeX, ksnk |
![]() ![]() ![]() |
|
SelenIT |
|
|||
![]() баг форума ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3996 Регистрация: 17.10.2006 Где: Pale Blue Dot Репутация: 8 Всего: 401 |
Фактически готовый HTML-парсер. У меня учтено;)
-------------------- Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму! |
|||
|
||||
SickFxck |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 107 Регистрация: 16.4.2010 Репутация: 1 Всего: 1 |
|
|||
|
||||
SickFxck |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 107 Регистрация: 16.4.2010 Репутация: 1 Всего: 1 |
Если кратко, то, встречая открывающий тег (парный), мы его пихаем в стек, если встретился закрывающий — выталкиваем. Если длина строки превысила допустимое количество — прерываем цикл. После выталкиваем все незакрытые теги. Я пользуюсь тем, что preg_split($pattern, $subject, -1, PREG_SPLIT_DELIM_CAPTURE) возвращает массив в виде чередующихся строк и подстрок, подходящих под шаблон. То есть, тег всегда будет в нечётных индексах массива, а простой текст — в чётных. Да и ещё один фикс:
P.S. И заметь, что, например, "&" я считаю одним символом ("&"), а не 5-ю. Это сообщение отредактировал(а) SickFxck - 28.4.2010, 17:59 |
|||
|
||||
Gold Dragon |
|
|||
![]() Призрачный ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6753 Регистрация: 1.3.2004 Где: Россия, Тамбов Репутация: 1 Всего: 71 |
боюсь что Tidy не могу использовать. не на всех серверах он установлен. Проверил у своих хостеров, только у одного стоит :(
-------------------- Нельзя жить в прошлом, оно уже прошло. Нельзя жить в будущем, оно ещё не наступило. Нужно жить в настоящем, помня прошлое и думая о будущем! |
|||
|
||||
Gold Dragon |
|
|||
![]() Призрачный ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6753 Регистрация: 1.3.2004 Где: Россия, Тамбов Репутация: 1 Всего: 71 |
никак не пойму почему количество заданных символов не соответствует реальной обрезке :(
и разница колеблется в случайном порядке, как в большую сторону так и в меньшую -------------------- Нельзя жить в прошлом, оно уже прошло. Нельзя жить в будущем, оно ещё не наступило. Нужно жить в настоящем, помня прошлое и думая о будущем! |
|||
|
||||
SickFxck |
|
||||||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 107 Регистрация: 16.4.2010 Репутация: 1 Всего: 1 |
Ты про чей вариант? Свой я уже пояснил:
Поэтому нельзя делать проверку с помощью strlen(). Ах да. Действительно есть кое-что. Окончательный вариант:
Это сообщение отредактировал(а) SickFxck - 29.4.2010, 11:51 |
||||||||
|
|||||||||
Gold Dragon |
|
|||
![]() Призрачный ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6753 Регистрация: 1.3.2004 Где: Россия, Тамбов Репутация: 1 Всего: 71 |
теперь код отлично работает на этом этапе
![]() если есть <img...> а не <img ... /> то появится </img> ![]() а можно как то включить в условия чтобы если встретится например тег <myqqq> то просто его игнорировать и оставить в коде? -------------------- Нельзя жить в прошлом, оно уже прошло. Нельзя жить в будущем, оно ещё не наступило. Нужно жить в настоящем, помня прошлое и думая о будущем! |
|||
|
||||
SickFxck |
|
||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 107 Регистрация: 16.4.2010 Репутация: 1 Всего: 1 |
Делай массив таких тегов
Добавь условие здесь:
substr(), strtok(), strtolower(), in_array()... Это сообщение отредактировал(а) SickFxck - 29.4.2010, 11:59 |
||||
|
|||||
SelenIT |
|
|||
![]() баг форума ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3996 Регистрация: 17.10.2006 Где: Pale Blue Dot Репутация: 8 Всего: 401 |
Я думаю, адекватного хостера можно попросить его добавить. Всё-таки стандартные решения надежнее, имхо (хотя бы тем, что не надо самому заводить массивы пустых тегов и разрешенных тегов)... -------------------- Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму! |
|||
|
||||
Gold Dragon |
|
|||
![]() Призрачный ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6753 Регистрация: 1.3.2004 Где: Россия, Тамбов Репутация: 1 Всего: 71 |
SelenIT, согласен с тобой.. Но не всё так просто ... ни каждый хостер будет доставлять библиотеки по желанию пользователей...
хотя я думаю нужно и этот вариант сделать, а в настройках давать пользователю вариант выбирать... -------------------- Нельзя жить в прошлом, оно уже прошло. Нельзя жить в будущем, оно ещё не наступило. Нужно жить в настоящем, помня прошлое и думая о будущем! |
|||
|
||||
![]() ![]() ![]() |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | PHP: Тексты | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |