Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: замена всех нужных фрагментов в Html файле
Форум программистов > Интернет и сети > Web-программирование > PHP программирование
Evgen
есть html файл с картинками. Нужно заменить путь ко всем файлам-картинкам. ТО есть есть строка типа "/home", ее нужно вставить перед каждым именем файла-картинки. Как это лучше сделать?
Заранее спасибо!
Andrew Stephanoff
поиск+замена
Gisma
лучший способ preg_replace
s10
поиск и замена круче.
Gisma
чем они отличаются от моего решения?
BobiKK
Для одноразового действия, вообще-то, по-барабану.
Если это надо выполнять постоянно, причем, выполнять должен пользователь, то лучше поиск и замена (если, конечно, возможно), ибо быстрее
Gisma
а я вот думал что регулярные выражения компилируются...
BobiKK
И? Да даже если вы байт-код будете делать или зендовским оптимизатором прогонять, всё равно будет гораздо медленее.

P.S. А вообще, компиляция регулярок - это больше по перловской части
Gisma
компиляция регулярок относится не только к перлу , тем более, что это preg_*
Так вот на первом вызове preg_replace происходит компилация регулярного выражения, что и вызывает замедление по времени, на последующие вызовы среда выполнения работает уже со скомпилированным выражением, значительно ускоряя работу. Тем более, я не думаю что речь идет об веб-сервисе где каждая миллисекунда дорога. Так что, честно говоря, я не понимаю почему подымается вопрос скорости. Есть более насущные проблемы - preg_replace это одна команда + мощь регэкспов, что означает простоту большую мощь кода при меньших затратах со стороны программиста, а что важно. Потом любой поиск по документу перерастает в поиск регулярному выражению, поэтому применять их изначально правильно.
BobiKK
Ну вы протестировали бы прежде, чем заявлять, что парсинг текста регулярками не будет особо уступать в скорости.
А если скорость не имеет значения в данном случае, то я уже сказал выше: по-барабану как текст обрабатывать.
Gisma
давай слово если будем употреблять перед выдачей решения, а не после.
Насчет регулярок я прекрасно осведомлен о скоростях обработки выражений, и вам советую ознакомиться поближе, раз решили бросаться такими утверждениями. Повторяю, регулярки лучшее решение. Конечно, есть исключительные ситуации, когда от них следует отказаться, но это исключительные ситуации. Тут я не вижу причин отказа от нихwink.gif. Поэтому выбираю простоту и универсальность.
Andrew Stephanoff
Парни, вы чего? Как я понял, надо в html файле поменять путь к картинкам, то есть все <img src="path/to/image /> передалеть в <img src="home/path/to/image" />. Блин, открываем редактор (любой) , нажимаем Ctrl+H или Ctrl+R и выполняем замену src="path/to/image на src="home/path/to/image" по всему тексту. какие нахрен регулярки? Это же однократное действие!
Gisma
нет ну я в такую тупость спрашивающего человека просто не верю.wink.gif
Ты прикинь программирует человек а произвести замену в файле исходников не знает как?wink.gif Это чуть-чуть офигительный прикол. Поэтому я думаю что она там что-то парситwink.gif.
Поэтому я привожу мысль что се равно поиск обычно усложняется, поэтому сразу делаю через регулярки.
BobiKK
Ой, да юзайте хоть awk, мне до фонаря. И спорить я с вами не собираюсь, если все аргументы ограничиваются набром фраз "так надо, так лучше, а не верите, сосите лапу".
И всё же, вдруг вас одолеют сомнения, спросите у разработчиков PHP, что оптимальнее использовать: регулярки или поиск с заменой, если задачу без проблем можно решить, используя лишь строковые функции.
Gisma
ты не понимаешь мой главный аргумент. А так конечно можно обойтись. У каждой проблемы всегда как минимум 2 решения.
s10
ого. как вы пошуметь любите.
по моему какой вопрос такой ответ.
он спросил "как заменить путь в html?". Моё мнение - руками.
про preg_replace в вопросе ни слова не было.

а вы сразу про парсинг.
Цитата(Gisma @ 25:07:2006, 22:34 )
чем они отличаются от моего решения?
*


незнаю как у вас конечно, мот вы html и парсите на предмет нахождения тэгов и атрибутов. но вот у меня в качестве путей обычно константы записаны.
иную ситуацию представить затрудняюсь.
Evgen
ого! Задачу свою уже решила с помощью preg_replace. Спасибо.
Цитата(Gisma @ 26:07:2006, 12:29 )
нет ну я в такую тупость спрашивающего человека просто не верю.wink.gif
Ты прикинь программирует человек а произвести замену в файле исходников не знает как?wink.gif Это чуть-чуть офигительный прикол.
*


Я только начала изучать php, поэтому спрашиваю иногда wink.gif
j_man
Если речь идет об одной html-ке то проще использовать preg_replace... (посчитайте сколько это зайймет времени у скрипта и убидетесь в ничтожности сего действия), в то время как на реализацию строковыми функциями может уйти побольше времени (а выйгрышь во времени никто не заметит)...

В иной ситуацииможет оказаться и наоборот, особенно если вы владеете алгоритмами поиска, а то знаете ли, всякое искать приходится smile.gif, но если же всетаки задача нестандартная а вы не слышали раньше о иетодах решения таких задач, то не парьте себе мозги и узайте preg ///
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2008 IPS, Inc.