|
|
|
| Всю голову сломал уже, не могу придумать выражение регулярное.
Нужно разбить с помощью PHP большой файл на сотню небольших.
Структура файла такая:
<h1>заголовок1</h1>
текстт текст текст
текст текст текст
.....
<h1>заголовок2</h1>
текстт текст текст
текст текст текст
....и так примерно до 1мб текста в файле
надо разбить на файлы с именем заголовокX.txt и текстом который между тегами <\h1> <h1>
первое:
не могу составить правильное выражение регулярное, чтобы получать заголовок и текст :(
Получилось что-то типа этого (?<=</[Hh][1]>).*(?=<[Hh][1]>)
второе:
результат ведь выдается в виде массива. а сможет ли php мегабайтный массив строк перелопатить?Можно ли без этого как-то? | |
|
|
|
|
|
|
|
для: sni
(26.07.2008 в 14:39)
| |
<?php
$f = fopen('text.txt', 'rb');
$x = false;
while($s = fgets($f))
{
if(preg_match('#<h1>(.+)</h1>#', $s, $r))
{
if($x) $x = fclose($x) & 0;
$x = fopen($r[1].'.txt', 'ab');
echo $r[1].".txt<br/>\r\n";
}else if($x)
fputs($x, $s);
}
if($x) $x = fclose($x);
?>
|
| |
|
|
|