|
|
|
| Приветствую всех читающих данную тему! Требуется помощь. Имеется гигантский html файл(для импорта в WPT) со статьями вида:
<h1>Категория1</h1>
<h2>Название1</h2>
статья1
..........................
<h1>КатегорияN</h1>
<h2>НазваниеN</h2>
статьяN
Не могу написать скрипт который приведет этот файлик к виду:
<h1>Категория1</h1>
<h2>Статья 1</h2>
..............................
<h2>Статья N</h2>
..................................
<h1>КатегорияN</h1>
<h2>Статья 1</h2>
..............................
<h2>Статья N</h2>
Т. е. статьи относящиеся к одной категории должны идти подряд и у каждой статьи относящейся к одной категории вхождение <h1>категория</h1> должно быть удалено(кроме первой статьи из этой категории).
Спасибо за помощь. | |
|
|
|
|
|
|
|
для: AleksRyzhov
(13.02.2010 в 23:39)
| | есть simple cms там подобным образом данные хранятся (в одном файле) можно там посмотреть | |
|
|
|
|
|
|
|
для: AleksRyzhov
(13.02.2010 в 23:39)
| | Задача для egrep.
$res = preg_replace(
"%<h1>([\\S]+)</h1> \s* <h2>([\\S]+)</h2> \s* (([^<]+|<(!?h1)[^>]+>)*) %x",
"<h1>\\1</h1>\\3", $text);
|
| |
|
|
|
|
|
|
|
для: Trianon
(14.02.2010 в 00:47)
| | Не понял как использовать последний код. Если не сложно напишите плиз подробнее) | |
|
|
|
|
|
|
|
для: AleksRyzhov
(14.02.2010 в 16:49)
| | (подумав...)
Ну уж нет.
Подробнее, знаете ли, некуда. | |
|
|
|
|
|
|
|
для: Trianon
(14.02.2010 в 17:02)
| | Использую такой код
<?
header("Content-type: text/html; charset=utf-8");
$b = file_get_contents("1.htm");
$res = preg_replace("%<h1>([\\S]+)</h1> \s* <h2>([\\S]+)</h2> \s* (([^<]+|<(!?h1)[^>]+>)*) %x",
"<h1>\\1</h1>\\3", $b);
echo "$res";
?>
|
не работает. | |
|
|
|
|
|
|
|
для: AleksRyzhov
(14.02.2010 в 17:34)
| | Я проверял на тексте из поста с вопросом. Возможно на выходе тег <h2> стоит добавить. Принципиально разбор идет. | |
|
|
|
|
|
|
|
для: Trianon
(14.02.2010 в 17:45)
| | Возможно был не правильно понят вопрос. Напишу подробнее. 1 хтмл файл имеет множество статей. Каждая статья начинается с категории в тегах<h1>, затем название статьи в <h2>, затем текст статьи. При этом статьи рандомно перемешаны, т е статьи одной категории могут идти в начале файла, середине и вообще где угодно. Нужно преобразовать файл к виду в котором статьи будут упорядоченны по категориям, т е категория в тегах <h1> , а за ней все статьи из этой категории при этом категория <h1> указывается только в самом начале, а дальше все статьи этой категории. Затем идет следующая категория и все статьи из этой категории. И так далее. | |
|
|
|
|
|
|
|
для: Trianon
(14.02.2010 в 17:02)
| | Переформулирую задачу. Есть много маленьких html файлов одинаковой структуры, как между собой сравнить в этих файлах первую строку <h1>Категория</h1>?
Зы Новичок в пыхе))) | |
|
|
|