Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум Регулярные Выражения

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: не могу придумать решение
 
 автор: sni   (26.07.2008 в 14:39)   письмо автору
 
 

Всю голову сломал уже, не могу придумать выражение регулярное.
Нужно разбить с помощью PHP большой файл на сотню небольших.

Структура файла такая:

<h1>заголовок1</h1>
текстт текст текст
текст текст текст
.....
<h1>заголовок2</h1>
текстт текст текст
текст текст текст

....и так примерно до 1мб текста в файле

надо разбить на файлы с именем заголовокX.txt и текстом который между тегами <\h1> <h1>

первое:
не могу составить правильное выражение регулярное, чтобы получать заголовок и текст :(
Получилось что-то типа этого (?<=</[Hh][1]>).*(?=<[Hh][1]>)

второе:
результат ведь выдается в виде массива. а сможет ли php мегабайтный массив строк перелопатить?Можно ли без этого как-то?

  Ответить  
 
 автор: Trianon   (26.07.2008 в 14:58)   письмо автору
 
   для: 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);
?>

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования