замена всех нужных фрагментов в Html файле

  • Автор темы Evgen
  • Дата начала
Статус
Закрыто для дальнейших ответов.
E

Evgen

#1
есть html файл с картинками. Нужно заменить путь ко всем файлам-картинкам. ТО есть есть строка типа "/home", ее нужно вставить перед каждым именем файла-картинки. Как это лучше сделать?
Заранее спасибо!
 
B

BobiKK

#6
Для одноразового действия, вообще-то, по-барабану.
Если это надо выполнять постоянно, причем, выполнять должен пользователь, то лучше поиск и замена (если, конечно, возможно), ибо быстрее
 
G

Gisma

#7
а я вот думал что регулярные выражения компилируются...
 
B

BobiKK

#8
И? Да даже если вы байт-код будете делать или зендовским оптимизатором прогонять, всё равно будет гораздо медленее.

P.S. А вообще, компиляция регулярок - это больше по перловской части
 
G

Gisma

#9
компиляция регулярок относится не только к перлу , тем более, что это preg_*
Так вот на первом вызове preg_replace происходит компилация регулярного выражения, что и вызывает замедление по времени, на последующие вызовы среда выполнения работает уже со скомпилированным выражением, значительно ускоряя работу. Тем более, я не думаю что речь идет об веб-сервисе где каждая миллисекунда дорога. Так что, честно говоря, я не понимаю почему подымается вопрос скорости. Есть более насущные проблемы - preg_replace это одна команда + мощь регэкспов, что означает простоту большую мощь кода при меньших затратах со стороны программиста, а что важно. Потом любой поиск по документу перерастает в поиск регулярному выражению, поэтому применять их изначально правильно.
 
B

BobiKK

#10
Ну вы протестировали бы прежде, чем заявлять, что парсинг текста регулярками не будет особо уступать в скорости.
А если скорость не имеет значения в данном случае, то я уже сказал выше: по-барабану как текст обрабатывать.
 
G

Gisma

#11
давай слово если будем употр*цензура*ть перед выдачей решения, а не после.
Насчет регулярок я прекрасно осведомлен о скоростях обработки выражений, и вам советую ознакомиться поближе, раз решили бросаться такими утверждениями. Повторяю, регулярки лучшее решение. Конечно, есть исключительные ситуации, когда от них следует отказаться, но это исключительные ситуации. Тут я не вижу причин отказа от них:). Поэтому выбираю простоту и универсальность.
 
A

Andrew Stephanoff

#12
Парни, вы чего? Как я понял, надо в 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" по всему тексту. какие нахрен регулярки? Это же однократное действие!
 
G

Gisma

#13
нет ну я в такую тупость спрашивающего человека просто не верю.:)
Ты прикинь программирует человек а произвести замену в файле исходников не знает как?;) Это чуть-чуть офигительный прикол. Поэтому я думаю что она там что-то парсит;).
Поэтому я привожу мысль что се равно поиск обычно усложняется, поэтому сразу делаю через регулярки.
 
B

BobiKK

#14
Ой, да юзайте хоть awk, мне до фонаря. И спорить я с вами не собираюсь, если все аргументы ограничиваются набром фраз "так надо, так лучше, а не верите, сосите лапу".
И всё же, вдруг вас одолеют сомнения, спросите у разработчиков PHP, что оптимальнее использовать: регулярки или поиск с заменой, если задачу без проблем можно решить, используя лишь строковые функции.
 
G

Gisma

#15
ты не понимаешь мой главный аргумент. А так конечно можно обойтись. У каждой проблемы всегда как минимум 2 решения.
 
S
#16
ого. как вы пошуметь любите.
по моему какой вопрос такой ответ.
он спросил "как заменить путь в html?". Моё мнение - руками.
про preg_replace в вопросе ни слова не было.

а вы сразу про парсинг.
<!--QuoteBegin-Gisma+25:07:2006, 22:34 -->
<span class="vbquote">(Gisma @ 25:07:2006, 22:34 )</span><!--QuoteEBegin-->чем они отличаются от моего решения?
[snapback]41007" rel="nofollow" target="_blank[/snapback]​
[/quote]

незнаю как у вас конечно, мот вы html и парсите на предмет нахождения тэгов и атрибутов. но вот у меня в качестве путей обычно константы записаны.
иную ситуацию представить затрудняюсь.
 
E

Evgen

#17
ого! Задачу свою уже решила с помощью preg_replace. Спасибо.
<!--QuoteBegin-Gisma+26:07:2006, 12:29 -->
<span class="vbquote">(Gisma @ 26:07:2006, 12:29 )</span><!--QuoteEBegin-->нет ну я в такую тупость спрашивающего человека просто не верю.wink.gif
Ты прикинь программирует человек а произвести замену в файле исходников не знает как?wink.gif Это чуть-чуть офигительный прикол.
[snapback]41029" rel="nofollow" target="_blank[/snapback]​
[/quote]

Я только начала изучать php, поэтому спрашиваю иногда :)
 
J

j_man

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

В иной ситуацииможет оказаться и наоборот, особенно если вы владеете алгоритмами поиска, а то знаете ли, всякое искать приходится :ph34r:, но если же всетаки задача нестандартная а вы не слышали раньше о иетодах решения таких задач, то не парьте себе мозги и узайте preg ///
 
Статус
Закрыто для дальнейших ответов.