
Друзья, хочу поделиться с вами маленькой заметкой на тему поиска и замены нужного кода (или просто текста) сразу в множестве файлов, лежащих в разных папках сайта (или в просто папках).
Как внести изменения в код сайта легко и непринуждённо?
Первая задача состоит в следующем: вы хотите изменить текст/ссылку/картинку, но среди кучи файлов, относящихся к программному коду сайта, не можете найти тот, в котором нужно сделать желаемые изменения.
У меня недавно возникло желание удалить из URL-адреса ссылки «Читать далее» на блоге код, который прокручивал страницу подробного содержимого статьи к месту установки тега «more». Такое поведение WordPress мне не понравилось (как-то сбивает это всё с толку) и я решил удалить лишнее из URL-адреса. А именно кусок кода «#more».
Кто не понял постановку задачи, поясню: аналогичное прокручивание страницы вы можете увидеть, перейдя по ссылке к комментариям данной статьи. Страница будет «проскролирована» благодаря содержащейся в URL инструкции «#comments» (подробнее о работе с такого рода ссылками можно прочитать на здесь). Всё то же самое происходило со ссылкой «Читать далее». С той лишь разницей, что страница «скролировалась» к «якорю» «more». В программном коде «движка» нужно было найти то место, где указана эта директива и удалить её.
Теперь давайте я расскажу, каким образом можно реализовать поставленную задачу.
Оказывается, всё очень просто. Нам потребуется программа Total Commander и её способность искать текст внутри файлов.
Интерфейс поиска вызывается нажатием «горячих» клавиш «Alt+F7».

В интерфейсе поиска нас будет интересовать раздел, относящийся к возможности искать заданный текст внутри файлов.
В соответствующей строке нужно указать характерное сочетание символов кода, которое вы хотите обнаружить. Но здесь нужно помнить тот факт, что, например, при поиске фразы с пробелами («Вот такая фраза») вы можете ничего не найти, потому что в HTML та же самая фраза может быть записана с использованием кода неразрывного пробела « » («Вот такая фраза»).
Поиск можно производить как в файлах локального компьютера, так и на сервере. Я подключился к серверу, используя возможности всё того же Total Commander.
Для тех, кто не в курсе: «горячее» сочетание клавиш «Ctrl+F» вызывает диалог подключение к серверу.
- Нажимаете кнопку «Добавить»;
- Вводите «Имя соединения» (любое буквосочетание, чтобы самому потом вспомнить, к чему происходит подключение);
- Указываете «Сервер[:Порт]». Здесь достаточно указать адрес вашего FTP-подключения (его даёт провайдер);
- «Учётная запись» и «Пароль» (пароль лучше не указывать, а вводить его каждый раз вручную при подключении, дабы защититься таким образом от всяких троянов, сами знаете);
- Иногда нужно ставить галочку рядом с пунктом «Пассивный режим обмена (как Web-браузер)», иначе будут постоянно происходить обрывы подключения.
Но сейчас речь не об этом.
На сервере я выделил те папки, в которых предполагал наличие искомого сочетания «#more» (именно его я счёл наиболее подходящим для поиска соответствующего куска кода) и запустил поиск по содержимому файлов. При поиске на сервере, процесс получается длительный, поэтому можно смело идти пить кофе.
После завершения поиска, мне были показаны два файла, в которых Total Commander обнаружил искомый текст. Открыв первый файл и перейдя к месту расположения текста «#more», я понял, что достиг цели.
Немного подредактировал и вуаля: всё работает, нелюбимого мной «скролирования» больше нет.
Теперь пойдём чуть дальше и разберём ещё одну задачу.
Необходимо сделать замену одинакового куска кода в большом количестве файлов
У меня частенько возникает такая задача. Например, сайт сделан на чистом HTML и нужно заменить на всех его страницах подпись в «футере». Тут либо лазить текстовым редактором по всем файлам, либо как-то автоматизировать этот процесс.
Займёмся автоматизацией. Для этого нам понадобится мой любимый редактор PSPad.
Выбираем пункт «Поиск и замена».
И в интерфейсе поиска указываем искомую фразу (текст, который был в «футере») и новое содержимое. Ниже выбираем место для поиска (папку, в которой расположен наш сайт) и замену за нас делает робот, а мы продолжаем пить кофе.
Вот и всё.
Автор: Андрей Морковин.
Ещё материалы по этой теме:
- «Ему» или «нему»?
- Установка и настройка Apache, PHP и MySQL, или Локальная среда разработки своими руками
- Кодировка в HTML
- Как настроить базы данных и PhpMyAdmin в Denwer?
- Установка и настройка Denwer
Комментарии:
Андрей Морковин
Внесу комментарий для примера скролирования страницы к якорю.
Never Lex
А не знаете мини программок для замены слов в большом количестве файлов? Чтобы директорию указал и условие ввёл. Пользовал такую ранбше как-то, но она УТФ не поддерживает
Андрей Морковин
PSPad
Только он.
Never Lex
Упс. Протупил. Спасибо огромное! Не знал что ПСПадом можно такое вытворять.
Андрей Морковин
Да, PSPad — отличная вещь. Жаль, что не умеет подсказывать теги и свойства так, как делает это Dreamweaver, поэтому приходится разрываться и работать с ними двумя.
Never Lex
Я наверно пока не достиг того мастерства, чтобы пользоваться подсказками Пока пишу руками. Занимает больше времени, но не даёт забывать теги и свойства. Вот когда всё будет доведено до автоматизма, тогда может и Дрим поставлю, или другой, более вменяемый редактор, который умеет подсказывать
Человек_без_именИ
Ну наконец то я узнал как искать инфу внутри В)
У меня недавно проблема была … найти кое какой кусок кода … и около 100 страниц В) пришлось все заливать в редактор и на каждом делать поиск В)
СПАСИБО!!! В)
Андрей Морковин
Рад, что статья оказалась полезной.
Евгений
Да, давно таким способом пользуюсь, но только в Hotepad++. А вот кто знает в какой проге можно сразу несколько строк кода на несколько строк менять?
Павел
«А вот кто знает в какой проге можно сразу несколько строк кода на несколько строк менять?»
RJ TextEd
Пётр
A почему нельзя воспользоватся, скажем, Notepad++? Отличный блокнот и FTP и поиск по тексту присутствует?