![]() |
|
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]()
|
|
| Наставник |
|
||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 327 Регистрация: 4.11.2004 Репутация: 2 Всего: 15 |
Уважаемые коллеги подскажите, как правильно сформировать регулярное выражение.
Надо выделить все теги<font> в html файле и заменить их на <h>, такого размера, который указан в аргументе size тега <font>. Вот вариант тега <font>
Для этого варианта довольно все просто
Тег <font> может также иметь вид
Вопрос, как мне узнать чему равен параметр size, и по нему сформировать соответсвующий тег <h1> - <h6>, при этом структура тега font имеет вид <font (.*) size=(1 | 2 | 3 | 4 | 5 | 6)></font> Спасибо. Это сообщение отредактировал(а) Наставник - 28.7.2005, 16:18 |
||||||
|
|||||||
| Mal Hack |
|
|||
![]() Мудрый... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: 122 Всего: 261 |
|
|||
|
||||
| Bikutoru |
|
|||
|
Увлекающийся ![]() ![]() Профиль Группа: Участник Сообщений: 522 Регистрация: 24.5.2005 Где: Москва Репутация: 8 Всего: 22 |
Прошу заметить, что допустимо <font size="1"> или <font size='1'> и не допустимо <font-size=1>. Так что, наверное, лучше будет так
Это сообщение отредактировал(а) Bikutoru - 28.7.2005, 17:10 -------------------- Человек, словно в зеркале мир — многолик, Он ничтожен — и он же безмерно велик! Омар Хайям |
|||
|
||||
| Mal Hack |
|
|||
![]() Мудрый... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: 122 Всего: 261 |
тогда уж:
Это сообщение отредактировал(а) Mal Hack - 28.7.2005, 17:15 |
|||
|
||||
| Наставник |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 327 Регистрация: 4.11.2004 Репутация: 2 Всего: 15 |
1. Mal Hack спасибо. Кратко и ясно (от меня +).
2. Немного изменив Ваш приведенный ответ под собственную задачу, получилась такая строка
А вот теперь доп. вопрос, можно ли как-нибудь ограничить количество символов (к примеру до 100), которые выводится в комментарии - <!-- \\3 -->, если не регулярное выражение, то можно было бы использовать такое выражение
// так "накручено", т.к. надо в комментарии выводить только текст, без тегов и спец. символов. Так, вот как это встроить в регулярное выражение. // Пытался выполнить рег. выражение с параметром /e - не заработало у меня, "руки ещё те". |
||||
|
|||||
| Mal Hack |
|
|||
![]() Мудрый... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: 122 Всего: 261 |
Наставник
Лучше мой последний вариант заюзай.
Это уже через callback вызов замены. |
|||
|
||||
| Наставник |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 327 Регистрация: 4.11.2004 Репутация: 2 Всего: 15 |
Хм, все же не понял вашего совета, что делать-то? |
|||
|
||||
| Mal Hack |
|
||||
![]() Мудрый... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: 122 Всего: 261 |
http://php.net/preg_replace_callback или:
|
||||
|
|||||
| Bikutoru |
|
|||
|
Увлекающийся ![]() ![]() Профиль Группа: Участник Сообщений: 522 Регистрация: 24.5.2005 Где: Москва Репутация: 8 Всего: 22 |
Ну а если
-------------------- Человек, словно в зеркале мир — многолик, Он ничтожен — и он же безмерно велик! Омар Хайям |
|||
|
||||
| Mal Hack |
|
|||
![]() Мудрый... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: 122 Всего: 261 |
Bikutoru посмотри мой последний вариант, там как раз с size=4
|
|||
|
||||
| Bikutoru |
|
|||
|
Увлекающийся ![]() ![]() Профиль Группа: Участник Сообщений: 522 Регистрация: 24.5.2005 Где: Москва Репутация: 8 Всего: 22 |
Mal Hack, дело не size=4, а в font-size без пробела между словами. Твой рег пропускает примерно такое
<font-dsfdsfdsfdsfds-size=4></font> Я тут поразмыслил, такое получилось:
Вроде работает... -------------------- Человек, словно в зеркале мир — многолик, Он ничтожен — и он же безмерно велик! Омар Хайям |
|||
|
||||
| Mal Hack |
|
|||
![]() Мудрый... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: 122 Всего: 261 |
Bikutoru тогда уж проще
|
|||
|
||||
| Наставник |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 327 Регистрация: 4.11.2004 Репутация: 2 Всего: 15 |
В ИТОГЕ.
Получилась регулярное выражение, которое заменяет все теги вида <font (.*) size=(1|2|3|4|5|6)></font> на соответствующий тег <h((1|2|3|4|5|6))></h1>, также добавляет перед полученными тегом <h> комментарий из текста, заключенного в «бывший тег» <font>, ограниченный 150 символами.
Спасибо Mal Hack, Bikutoru. Удачи. Это сообщение отредактировал(а) Наставник - 28.7.2005, 18:38 |
|||
|
||||
| Bikutoru |
|
|||
|
Увлекающийся ![]() ![]() Профиль Группа: Участник Сообщений: 522 Регистрация: 24.5.2005 Где: Москва Репутация: 8 Всего: 22 |
Проще, да не проще
Раскомментируй свой рег Добавлено @ 18:41 З.Ы. долго же я свой придумывал... Надо подучить эту тему... -------------------- Человек, словно в зеркале мир — многолик, Он ничтожен — и он же безмерно велик! Омар Хайям |
|||
|
||||
| Mal Hack |
|
|||
![]() Мудрый... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: 122 Всего: 261 |
Bikutoru
Наставник что-то ты слишком умно завернул |
|||
|
||||
![]()
|
| Правила форума "PHP" | |
|
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |