Редактор темы

Как удалить определенную строчку из очень большого количества текстовых файлов?

  • Автор темы Автор темы Яло
  • Дата начала Дата начала

Яло

Новичок
Регистрация
13 Авг 2017
Сообщения
27
Рейтинг реакций
1
Баллы
3
Возраст
36
1/3
Автор темы
Приветствую форумчане! Кто может сделать скрипт или другое решение для моей проблемки!?
Суть: есть больше 10к текстовых файлов (статей), и из каждой нужно удалить <h1>. Кто поможет? Можно обсудить оплату, если потребуется. Всем спасибо заранее)
 
1. Файлы я так понимаю небольшие, до пары МБ наверно?
2. Находятся все в одной папке или есть подпапки?
3. Я так понял, что нужно удалить только открывающий и закрывающий тег <h1>тут текст</h1> - верно?

Заклепать такой скрипт дело 5 минут 😉

P.S. Вообще я уверен есть проги для этого, и наверно кто-то знает такую и подскажет. Но я привык все делать с помощью PHP, так что такой вариант и предлагаю.
 
Последнее редактирование:
Автор темы
Да, все верно!

1. файлы от 5-50 кб
2. все в одной папке
3. нужно удалить всю строку <h1>Заголовок</h1> в каждом файле

Сколько будет стоить такой скрипт (если дело 5 минут🙂)?
 
А не проще ли из кода полной новости его удалить? Или я чего-то не понял?)))
 
Автор темы
Неправильно понял) У меня на компьютере есть папка в которой больше 10к статей, и мне нужно на постоянной основе из большого количества статей удалять Н1 заголовки.
 
1. Папку с файлами и php-файл из архива кидаем в одну папку на локальном севере, чтобы лежали «рядом», к примеру:
Код:
/files
/remove_h1.php
2. Открывает в браузере путь, по которому лежит файл( http://localhost/remove_h1.php предположу что будет примерно так)
3. Скрипт выведет список папок. Выбираем нашу папку, в которой лежат файлы.
4. Все. Скрипт прогоняет файлы, удаляет теги по регулярке: <h1[\s\w=\"\']*>(.*?)<\/h1> (провозился с регуляркой, в итоге сделал так, вроде работает без косяков)

P.S. Надеюсь я верно понял, что вам нужен php скрипт 😀
P.S.S. У себя потестил, должно работать норм. Но комп у меня временно слабенький, так что он тупо подвис, хотя дело сделал )
 

Вложения

Автор темы
Спасибо огромное. Завтра уже буду тестить - обязательно отпишусь!!
 
notepad++, поиск и замена (ctrl+f), в пункте регулярные выражения пишем:
Код:
<h1>(.*)</h1>
заменить на - оставляем пустым.
2018-02-26_18-41-49.png

В поле ПАПКА выбираешь свою папку, в которой находятся все файлы для поиска и замены.
 
notepad++, поиск и замена (ctrl+f), в пункте регулярные выражения пишем:
Код:
<h1>(.*)</h1>
заменить на - оставляем пустым.
Посмотреть вложение 16279

В поле ПАПКА выбираешь свою папку, в которой находятся все файлы для поиска и замены.

Блиииииинн.... Я ведь думал что где-то как-то есть такое))) Но я notepad не пользуюсь, у меня Sublime Text трудится неплохо) И кстати сейчас посмотрел — в нем тоже такая фигня есть))

Но вот тут нюанс все же есть:
1. Иногда тегу h1 задают класс, айди или вовсе кусок css стилей. И такая регулярка не сработает: <h1>(.*)</h1>. Хотя такое не слишком часто, но все же.
2. Второй момент вообще мелочь, и наверно может встретиться в единичных случаях но все же. В PHP регулярка(если не указать модификатор)<h1>(.*)</h1> захватывает текст от первого <h1> до последнего </h1>. т.е если на странице в одной строке (иногда код сайта сжимается в одну строку) будет каким-то образом два тега h1, то текст между ними может тоже удалится.

Все, я показал какой я умный — всем спасибо!


Минут 40 возился с регуляркой тогда, пытаясь учесть эти два момента )))

UPD: первый пункт решается так: <h1(.*)</h1>
 
В PHP регулярка(если не указать модификатор)<h1>(.*)</h1> захватывает текст от первого <h1> до последнего </h1>
ещё можно добавить (методом проб) или \r или \n или в совокупности их вместе в \r\n или \n\r после закрывающего </h1> если на одной строке находится только h1.
 
ещё можно добавить (методом проб) или \r или \n или в совокупности их вместе в \r\n или \n\r после закрывающего </h1> если на одной строке находится только h1.
Не совсем тебя понял... <h1(.*)</h1>\n А если после закр.тега идет текст или пробел? Варик заменить сначала тег </h1> на </h1>\n, а потом сделать такую замену... <h1(.*)</h1> Но по моему пора уже закрыть эту тему (топик) 😀

P.S. К слову пробел и переносы можно искать так \s (но думаю ты это знаешь) 🙄
 
Автор темы
Спасибо вам, ребята!!! Очень помогли)
 

Похожие темы Последние темы Популярные темы

Назад
Сверху