Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > Проблема с масивами


Автор: Blaga 27.3.2006, 13:55
Короче дали мне задание сделать парсер текстовых файлов чтобы он сканил папку и выбирал оттуда все файлы тхт потом читал их. Короче в этой папке должно быть много файлов текстовых все они примерно такого содержания
Код

www.test.ru;test
http://test1.ru;test

вот это в исходных файлах а вот что должно записываться в файл (один файл)
Код

www.test.ru;test;test
http://test1.ru;test;test

короче то слово что после точки с запятой должно дублироватся. Я решил начать с середины чтобы он для начала открывал файл который я указал читал его и переводил в тот вид котрый нужен. вот что у меня получилось:
Код

<?php
     error_reporting(0);
       $xnews=file('file.txt');
       $xnews=array_reverse($xnews);
       $i=0;
        $crtsplit="";
        $crtsplit=explode(";",$xnews[$i]);
         foreach ($crtsplit as $value)
         {
                 echo "$value";
         }
  $fp=fopen('output.txt',"a+");
  $stroka=$crtsplit[0].";".$crtsplit[1].";".$crtsplit[1] ;
  fwrite($fp,StripSlashes($stroka)."\n");
  fclose($fp);
?>

короче файл он вроде открывает. даже читает его в файле file.txt вот что:
Код

www.test.ru;test1
http://test.com;test2

а в файл output.txt он пишет:
Код

http://test.com;test2;test2

то есть последнюю строку. как мне сделать чтобы он все нормально писал? подскажите пожалуйста а то я программировании новичок еще. smile

Автор: Darhazer 27.3.2006, 14:46
Надо весь массив в цикле читать/записивать
Код

  $xnews=file('file.txt');
       $xnews=array_reverse($xnews);
      $crtsplit="";
      $fp=fopen('output.txt',"a+");
      for ($i=0; $i<count($xnews); $i++ )
       {
       $crtsplit=explode(";",$xnews[$i]);
         foreach ($crtsplit as $value)
         {
                 echo "$value";
         }
  $stroka=$crtsplit[0].";".$crtsplit[1].";".$crtsplit[1] ;
  fwrite($fp,StripSlashes($stroka)."\n");
  }
  fclose($fp);


Автор: Blaga 27.3.2006, 20:34
Darhazer, спасибо за помощь. Но задачку я пораньше решил сам. похожим способом.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)