Конец строки

Discussion in 'PHP' started by nc.STRIEM, 30 Jun 2006.

  1. nc.STRIEM

    nc.STRIEM Members of Antichat

    Joined:
    5 Apr 2006
    Messages:
    1,036
    Likes Received:
    347
    Reputations:
    292
    у меня есть текстовой файл, который я читаю скриптом на php, дак вот подскажите как определить конец строки! пробовал читать функциями fread( ) fgetc( ) fgets( ) но не одна из них не вдет символ '\n' fgets( ) вроди как прекращает чтение когда доходит до '\n' но мне это не подходт! мне нужно чтоб я например смог просто сравнить if($с=='\n') (передворительно почитав в $c конец строки) вобщем как на C++
    как это сделать в php??
     
  2. Ch3ck

    Ch3ck Elder - Старейшина

    Joined:
    9 Jun 2006
    Messages:
    1,363
    Likes Received:
    1,190
    Reputations:
    430
    Тут всё немного по-другому...
    ипользуй функцию file(Разбивает файл со строками в массив и каждому элементу соответствует строка из файла). Да ещё используй foreach. И посмотри мой брут на php там практически тоже самое. :)
     
  3. Rabid Rabbit

    Rabid Rabbit Elder - Старейшина

    Joined:
    31 Aug 2003
    Messages:
    161
    Likes Received:
    15
    Reputations:
    -9
    а fgets() и на С++ есть, че не в курсе да=) оно действительно прекращает чтение когда достигнут конец строки. пользуй предыдущие две. скорее всего у тя ошибка не там где чтение из файла а там где определяешь \n
     
    #3 Rabid Rabbit, 30 Jun 2006
    Last edited: 30 Jun 2006
  4. DIAgen

    DIAgen Banned Life!

    Joined:
    2 May 2006
    Messages:
    1,055
    Likes Received:
    376
    Reputations:
    460
    Можно легко подсчитать количество строк в файле:
    PHP:
    <?
      
    $file_array =  file ("file.txt");
      if(!
    $file_array)
      {
        echo(
    "Ошибка открытия файла");
      }
      else
      {
        
    $num_str =  count($file_array); 
        echo(
    $num_str);
      }
    ?>
     
  5. SMiX

    SMiX Elder - Старейшина

    Joined:
    25 Jul 2005
    Messages:
    227
    Likes Received:
    55
    Reputations:
    29
    Твоя ошибка в том, что ты \n заключаешь в одинарные кавычки. У тебя он считается как 2 символа - "\" и "n", надо
    PHP:
    if($c=="\n")
     
    1 person likes this.
  6. Trinux

    Trinux Members of Antichat

    Joined:
    26 Nov 2004
    Messages:
    1,403
    Likes Received:
    296
    Reputations:
    364
    Бинго! =)
     
    _________________________
  7. ZaCo

    ZaCo Banned

    Joined:
    20 Jun 2005
    Messages:
    737
    Likes Received:
    336
    Reputations:
    215
    ну все-таки чтобы только подсчитать кол-во строк достаточно использовать fgetc(). тем более врядли получится использовать file() для очень больших файлов.
     
  8. Ch3ck

    Ch3ck Elder - Старейшина

    Joined:
    9 Jun 2006
    Messages:
    1,363
    Likes Received:
    1,190
    Reputations:
    430

    Это я уж ему в аську скидывал... эму типо есть файл со словами, где каждое слово с новой строки, и надо каждое слово записать в свою переменную, вот и всё.
    Полюбой тут надо пользоваться file и foreach :cool:
     
  9. nc.STRIEM

    nc.STRIEM Members of Antichat

    Joined:
    5 Apr 2006
    Messages:
    1,036
    Likes Received:
    347
    Reputations:
    292
    а разве "\n" пишеться в двойных ковачках????? это константа и насколько я помню пишеться в одинарных!!!! в С точно в одинарных!
    а задача не подсчитать а прост загонять в переменную по 1 строке! тоесть сначало 1строку (поработал с ней), потом 2 строку .. итд
     
  10. nc.STRIEM

    nc.STRIEM Members of Antichat

    Joined:
    5 Apr 2006
    Messages:
    1,036
    Likes Received:
    347
    Reputations:
    292
    да действительно в php \n пишеться в двойных кавычках! вобщем то в этом и была ошибка! че надо уже написал!

    function strread($file)
    {
    $z="";
    $c=fgetc($file);
    while($c!="\n"&&!feof($file))
    {
    $z.=$c;
    $c=fgetc($file);
    }
    return $z;
    }

    всегото.... )))
    всем спасибо за помощь!!!!! а Dr.Check спасиб за старания)))
     
    #10 nc.STRIEM, 30 Jun 2006
    Last edited: 30 Jun 2006
  11. Rabid Rabbit

    Rabid Rabbit Elder - Старейшина

    Joined:
    31 Aug 2003
    Messages:
    161
    Likes Received:
    15
    Reputations:
    -9
    Хех, все что в двойных интерпретируеца, в одинарных нет)) А воще такой стиль песания ламерский, иначе не назавешь)) Нада была стока песать вместа fgets() ??? )))
     
  12. nc.STRIEM

    nc.STRIEM Members of Antichat

    Joined:
    5 Apr 2006
    Messages:
    1,036
    Likes Received:
    347
    Reputations:
    292
    согласен не надо было!! )))
    прост сначало мне нужно было искать \n в массиве символов))
     
Loading...