[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Как выдернуть заголовок из файла
DVoron
Привет.
У меня следующий вопрос.
есть список файлов (около 400) с контентом. Имена файлов типа 054-1.html, 055-1.html...056-1.html и т.д.

нужно сделать ссылки на эти файлы, но имена файлов не подходят для этого.
В файлах есть заглавок типа:

...
<!-- ЗАГЛАВОК -->
<h1>ЗАГЛАВОК1</h1>
...
<!-- ЗАГЛАВОК -->
<h1>Заглавок2</h1>


Как можно выдернуть циклом эти заглавки из этих файлов?
Пробовал с помощью регулярных выражений, но в программировании я не силен, я дизайнер. Вручную перелопачивать 460 файлов нет возможности.
Надеюсь на вашу помощь.




Спустя 11 минут, 6 секунд (11.04.2011 - 10:27) Trianon написал(а):
составить реглярку - еще не решение. Её-то можно сходу набросать
preg_match('/<!-- \s+ ЗАГЛАВОК \s+ --> \s+ <h1> ([.^<]+) <\/h1> /sx', $text, $res);

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

Спустя 5 часов, 32 минуты, 39 секунд (11.04.2011 - 16:00) DVoron написал(а):
Подскажите, что я делаю не так:

<textarea name='list' >
<?php
$d=opendir('/www/www1/documents');
while(false !== ($f = readdir($d))) {
if($f!='.' && $f!='..'):
$files[]=$f;
echo("$f\n");
endif;
}
?>
</textarea>
<
textarea name='flist'>
<?php
for ($i=0;$i<count($files);$i++){
preg_match('/<!-- \s+ ЗАГЛАВОК \s+ --> \s+ <h1> ([.^<]+) <\/h1> /sx', $files[$i], $res);
echo ("$res[$i]");
}
?>
</textarea>


в первом текстовом поле выводятся имена файлов, а во вотором пусто ((((

Спустя 42 минуты, 6 секунд (11.04.2011 - 16:42) Trianon написал(а):
1. чтобы что-то подсказывать, нужно хотя бы файл-другой увидеть.
Я вот к примеру и слова-то такого не знаю ЗАГЛАВОК.

2. Массив $files, судя по первому фрагменту, у Вас состоит из локальных имен файлов.
А во втором фрагменте, Вы считаете, что в нем лежат тексты их содержимого.

Спустя 28 минут, 25 секунд (11.04.2011 - 17:10) DVoron написал(а):
Понял в чем проблема, спасибо )))))

Спустя 6 часов, 38 минут, 51 секунда (11.04.2011 - 23:49) Guest написал(а):
я так понял правильно будет так:

<textarea name='list' >
<?php
$d=opendir('/www/www1/documents');
while(false !== ($f = readdir($d))) {
if($f!='.' && $f!='..'):
$files[]=$f;
echo("$f\n");
endif;
}
?>
</textarea>
<
textarea name='flist'>
<?php
for ($i=0;$i<count($files)-1;$i++){
$f=file($files[$i]);
preg_match('/<!-- \s+ ЗАГЛАВОК \s+ --> \s+ <h1> ([.^<]+) <\/h1> /sx', $f, $res);
echo ("$res[$i]");
}
?>
</textarea>
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.