БлогNot. PHP: читаем числа из текстового файла в массив

PHP: читаем числа из текстового файла в массив

Решение небольшой сложности, возникшей у народа при форматном чтении данных из файла на PHP.

В PHP, в отличие от C++, каждый вызов fscanf читает одну строку из файла, таким образом, функция не работает аналогично одноимённой функции из C++ и не применима, например, к задаче чтения из файла произвольного количества числовых значений, расположенных в произвольных строках файла.

Ниже приведен пример открытия файла функцией fopen с последующим чтением данных (целых или вещественных чисел) в массив $a. Вызов die, используемый в сочетании с fopen, обеспечивает вывод сообщения об ошибке в том случае, если открыть файл не удастся.

<?php
 $file = 'data.txt';
 $f = fopen($file, "r") or 
   die("File $file does not exist!");
 $a = Array ();
 while (($data = fgets($f))!==false) {
  $a0 = explode (" ",$data);
  foreach ($a0 as $item) 
    if (is_numeric(trim($item))) $a[] = $item;
 }
 fclose ($f);
 foreach ($a as $item) echo $item.' ';
?>

Числа в файле data.txt, находящемся в текущей папке скрипта, могут располагаться произвольно, например, следующим образом:

1   2 3.5
4 5.5 6
3

Пустые строки и нечисловые значения будут проигнорированы скриптом.

Обратите внимание на синтаксис записи условия, определяющего, достигнут ли конец файла, а также на необходимость удаления из прочитанных элементов файла $item лишних разделителей функцией trim, в противном случае, например, могут быть не прочитаны числа, завершающие строку файла.

08.05.2015, 10:52 [10788 просмотров]


теги: php форматы

К этой статье пока нет комментариев, Ваш будет первым