![]() |
|
||||||||||
|
|||||
|
Цитата:
но, что весьма интересно, \\\ тоже работает, а чтобы заменить точку, можно поставить и \. и \\. =) Я, правда, по-аглицки не очень, но зато в глаз бросилась запись подмаски \$1, лучше писать ${1} Цитата:
Кстати, начинай потихоньку забывать про ereg, переходи на preg, это круче =)
__________________
__________________ Последний раз редактировалось drwhite; 10.06.2007 в 10:58. |
|
|||||
|
Регистрация: Jun 2007
Сообщений: 7
|
Пытаюсь с помощью регулярных выражений не убирать Font, а исправить для понимания флешем. Т.е. заключить значение в кавычки... Есть у PostNuka такой недостаток при формировани тегов... Думал сначала убрать Font, но раз уж все теги... лучше править чем удалять... Но то, что мне удалось написать не отрабатывает:
<?
$test = "<FONT color=#CC0000>TEST</FONT>";
$patterns = "#";
$replace= "\"#";
$text = str_replace($patterns,$replace,$test);
$text1 = ereg_replace ('="#([^>]*)"','"1"',$text);
echo $text1;
?>
И сразу следующий вопрос: а когда в строчке несколько параметров, как правильно им шаблон задать? Первый символ я найду, а вот последний? к примеру: <width=111 height=23> Мне уже кажется, что проще сделать дамп базы, и через Find->replace в текстовом редакторе... А потом следить за каждой новостью и подправлять вручную.... |
|
|||||
|
Регистрация: May 2007
Сообщений: 22
|
Цитата:
Цитата:
$test = "<FONT color=#CC0000>TEST</FONT>";
$text1 = ereg_replace ('color=#([^>]*)','color="#\\1"',$test);
echo $text1;
такие: замена не правильно составлена, надо не просто 1 ставить, а \\1 и в самом шаблоне ошибка: ="#([^>]*)" откуда взялась в конце кавычка? её ведь нет, str_replace() добавила только первую кавычку. Цитата:
|
|
|||||
|
Регистрация: Jun 2007
Сообщений: 7
|
Спасибо! Надеюсь, я тоже когда-то смогу освоить регулярные выражения ))))) Кстати, а ereg_replace не будет сильно замедлять работу скрипта? Вроде в хелпе предостерегают от ее использования и рекомендуют что можно заменять через str_replace... Вот я и сунулся с ней... )) Теперь буду умнее )))
А имел я в виду следующее. Typetool в PostNuke, в форматировании, упорно удаляет кавычки из тегов: <img src="/1.jpg" width=20 height = 10> А флеш упорно не хочет это понимать и требует <img src="/1.jpg" width="20" height = "10"> и вот не понимаю, как в таком случае будет составляться шаблон. Ибо от чего тут отталкиваться? К тому же, в теге могут быть стили, и их тоже как-то удалить нужно... Но с этим вроде крутятся кое-какие мысли, завтра утром попробую набросать... Просто не понимаю пока - одним это будет шаблоном, или два разных... ![]() |
|
|||||
|
Регистрация: May 2007
Сообщений: 22
|
Цитата:
К тому же функции семейства preg (совместимые с Perl) быстрее ereg (функции стандарта POSIX). Мануал так пишет по крайней мере. Теперь сами выражения. Сделать сделал, потестировал - работает...но конечно за 100% успех не поручусь, ибо мало ли что =) Сделано в три подхода =) В первый добавляем width кавычки, потом height и затем удаляем стили, наверное можно и за один раз все сделать...но все-таки чем проще чем лучше, наверное =)
|
|
|||||
|
Регистрация: Jun 2007
Сообщений: 7
|
Спасибо ))) Стили и другую лишнюю информацию, которая может попасться в тегах, у меня убрать получилось, а вот кавычки добавить пока не смог ))) Но, радует, что уже хоть что-то, но получается у самого )))) Правда сделал через ereg...
И как раз, вы упомянули момент, о котором хотел спросить - как-то зависит быстродействие или нагрузка на сервер от количества проходов? Еще раз огромное спасибо! |
|
|||||
|
Регистрация: May 2007
Сообщений: 22
|
Правильно! Лучше всего самому все делать, опять же удовольствие от собственноручно сделанной работы появляется ;-) Ну, у функций ereg синтаксис попроще, думаю все с них начинали, но принципы и там и там одни и те же...
Насчет количества проходов я не знаю =)) Но если так по опыту, то можно одно регулярное выражение составить, но такое что долго будет выполняться, а можно три рядом, но все быстро-шустро исполняться и готово =) Вообще надо на практике смотреть, конечно... |
![]() |
![]() |
Часовой пояс GMT +4, время: 16:01. |
|
|
« Предыдущая тема | Следующая тема » |
|
|