Регулярные выражения

TheBat
На сайте с 03.08.2004
Offline
173
696

Проблема такова:

Есть скачанный с сайта партнера большой (4000 файлов) каталог продукции. Все файлы в формате .html, выполнены в одном шаблоне.

Нужно удалить во всех файлах шапку с логотипом компании-парнера. Впринципе, если кусок кода одинаковый во всех файлах, то это сделать можно элементарно, например в заменой куска кода пакетно в Homesite.

Однако возникла небольшая трудность. Шапка во всех файлах различается значением атрибута alt="Название компании. Название раздела". Разделов очень много, вручную удалять не вариант, поэтому необходимо использовать регулярные выражения.

С помощью какой конструкции, используя регулярные выражения Homesite (либо же другой программы), можно привести этот атрибут во всех файлах к одному виду (например alt="", или же вообще удалить его), чтобы впоследствии пакетно удалить одинаковый кусок кода?

Максим
P
На сайте с 10.03.2008
Offline
168
#1

В дримвивере:

alt="(.*)"

Пользуюсь только дримом, не знаю, работает ли в других редакторах.

+ галочку не забудьте поставить напротив Use regular expression.

TheBat
На сайте с 03.08.2004
Offline
173
#2

Спасибо, что обратили внимание на мой вопрос.

Получилось в EmEditor заменой alt=".*?" на alt="".

А Homesite выдает ошибку (при замене alt=".*?" на alt=""):

Regular expression error 17: Bad expression format or internal error

Progr@mmer\.
На сайте с 14.10.2007
Offline
44
#3

Приведите весь кусок кода. Например, с главной. Я дам скрипт, который окучит это всё.

Вашей девушке не хватает романтики? Черпните её на сайте «Я Люблю Романтику» (http://iloveromantics.ru/). Романтический форум (http://forum.iloveromantics.ru/) для отдыха от нудной работы.
LA
На сайте с 03.06.2008
Offline
105
#4

Как пример:


<?
$filesdir = dirname(__FILE__) . '/html_files/'; // папка с htmlками
$search = '#<img.*src="/logo.jpg".*alt=".*".*>#iUs'; // ищем это
$replace = '<img src="/newimage.jpg">'; // заменяем на это

$op = opendir($filesdir);
while (($file = readdir($op)) !== FALSE)
{
if (is_file($filesdir . $file) AND preg_match('#^.*\.(htm|html)$#i', $file))
{
$filedata = file_get_contents($filesdir . $file);
$filedata = preg_replace($search, $replace, $filedata);
file_put_contents($filedata, $filesdir . $file);
}

unset($filedata);
}

?>
S0
На сайте с 07.05.2007
Offline
118
#5
Progr@mmer\.:
Приведите весь кусок кода. Например, с главной. Я дам скрипт, который окучит это всё.

Progr@mmer\., нельзя быть таким уродом... на форуме ты каждый день, как на работу.

А мне говоришь(уже третий месяц), что у тебя времени совсем нет, причем на скрипт, за написание которого получил от меня денег 😡

P.S.: По телефону со мной поговорить духу не хватает? Мое тепение лопнуло... требую возврата денег!

TheBat, извиняюсь за оффтоп!

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий