к оглавлению

Чтение из файлов и запись в файлы

Чтение из файлов

Прочитать строку из открытого файла можно с помощью функции fread:

  string fread ( int file, int length )

Эта функция возвращает строку длиной length символов из файла с дескриптором file.

Пример (чтение из файла):

<?php
  $file = fopen("c:/www/html/file.txt","r");
  if(!file)
    {
      echo("Ошибка открытия файла");
    }
    else
    {
      $buff = fread ($file,100);
      print $buff;
    }
?>

Для чтения из файла можно также пользоваться функцией fgets:

string fgets ( int file, int length)

Эта функция читает и возвращает строку длиной length - 1 байт. Чтение прекращается, когда достигнута новая строка или конец файла. При достижении конца файла функция возвращает пустую строку.

Для чтения файла с удалением из него тегов HTML применяется функция fgetss:

string fgetss (int file, int length [, string allowable_tags])

Необязательный третий параметр allowable_tags может содержать строку со списком тегов, которые не должны быть отброшены, при этом теги в строке записываются через запятую.

Если необходимо записать содержимое файла в массив, применяется функция file:

array file (string filename [, int use_include_path])

Функция считывает файл с именем filename и возвращает массив, каждый элемент которого соответствует строке в прочитанном файле. В следующем примере с помощью функции читается файл, информация из которого затем выводится в браузер.

<?php
  $file_array = file("file.txt");
  if(!$file_array)
  {
    echo("Ошибка открытия файла");
  }
  else
  {
    for($i=0; $i < count($file_array); $i++)
    {
      printf("%s<br>", $file_array[$i]);
    }
  }
?>

Эта функция удобна также тем, что с ее помощью можно легко подсчитать количество строк в файле:

<?php
  $file_array =  file ("file.txt");
  if(!$file_array)
  {
    echo("Ошибка открытия файла");
  }
  else
  {
    $num_str =  count($file_array); 
    echo($num_str);
  }
?>

Заметим, что функцию file следует применять лишь для чтения небольших файлов.

Для чтения файлов с расширением *.csv применяется функция fgetcsv:

  array fgetcsv ( int file, int length, char delim)

Функция читает строку из файла и разбивает ее по символу delim. Параметр delim должен обязательно быть строкой из одного символа, иначе принимается во внимание только первый символ этой строки. Функция возвращает получившийся массив или false, если достигнут конец файла. Пустые строки в файле не игнорируются, а возвращаются как массив из одного элемента - пустой строки. Параметр length задает максимальную длину строки точно так же, как это делается в функции fgets.

Формат CSV является одним из форматов, в котором может сохранять файлы MSExcel. В следующем примере производится чтение созданного MSExcel файла file.csv, содержащего пароли пользователей.

<?php
  $count = 1;
  $file =  fopen ("file.csv","r");
  while ($data = fgetcsv ($file, 1000, ",")) 
  {
    $num = count ($data);
    $count++;
    for ($i=0; $i < $num; $i++) 
    {
      print "$data[$i]<br>";
    }
  }
  fclose ( $file );
?>

Запись в файлы

Запись в файлы осуществляется функциями fputs и fwrite, которые абсолютно идентичны:

  int fputs ( int file, string string [, int length ])
  int fwrite ( int file, string string [, int length ])

Первый аргумент - дескриптор файла, в который осуществляется запись. Второй аргумент представляет собой строку, которая должна быть записана в файл. Третий необязательный аргумент задает количество символов в строке, которые должны быть записаны. Если третий аргумент не указан, записывается вся строка.

В этом примере в файл "file.txt" записывается строка "Hello, world!"

<?php
  $file = fopen ("file.txt","r+");
  $str = "Hello, world!";
  if ( !$file )
  {
    echo("Ошибка открытия файла");
  }
  else
  {
    fputs ( $file, $str);
  }
  fclose ($file);
?>
к оглавлению

Знаете ли Вы, в чем фокус эксперимента Майкельсона?

Эксперимент А. Майкельсона, Майкельсона - Морли - действительно является цирковым фокусом, загипнотизировавшим физиков на 120 лет.

Дело в том, что в его постановке и выводах произведена подмена, аналогичная подмене в школьной шуточной задачке на сообразительность, в которой спрашивается:
- Cколько яблок на березе, если на одной ветке их 5, на другой ветке - 10 и так далее
При этом внимание учеников намеренно отвлекается от того основополагающего факта, что на березе яблоки не растут, в принципе.

В эксперименте Майкельсона ставится вопрос о движении эфира относительно покоящегося в лабораторной системе интерферометра. Однако, если мы ищем эфир, как базовую материю, из которой состоит всё вещество интерферометра, лаборатории, да и Земли в целом, то, естественно, эфир тоже будет неподвижен, так как земное вещество есть всего навсего определенным образом структурированный эфир, и никак не может двигаться относительно самого себя.

Удивительно, что этот цирковой трюк овладел на 120 лет умами физиков на полном серьезе, хотя его прототипы есть в сказках-небылицах всех народов всех времен, включая барона Мюнхаузена, вытащившего себя за волосы из болота, и призванных показать детям возможные жульничества и тем защитить их во взрослой жизни. Подробнее читайте в FAQ по эфирной физике.

НОВОСТИ ФОРУМАФорум Рыцари теории эфира
Рыцари теории эфира
 09.07.2020 - 07:13: ВОЙНА, ПОЛИТИКА И НАУКА - War, Politics and Science -> Проблема государственного терроризма - Карим_Хайдаров.
09.07.2020 - 07:12: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от Владимира Васильевича Квачкова - Карим_Хайдаров.
09.07.2020 - 05:55: Беседка - Chatter -> Записки неверующего - Виктор_Белов.
08.07.2020 - 20:08: ЭКОЛОГИЯ - Ecology -> Биологическая безопасность населения - Карим_Хайдаров.
08.07.2020 - 19:50: ВОЙНА, ПОЛИТИКА И НАУКА - War, Politics and Science -> РАСЧЕЛОВЕЧИВАНИЕ ЧЕЛОВЕКА. КОМУ ЭТО НАДО? - Карим_Хайдаров.
08.07.2020 - 19:42: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от Пламена Паскова - Карим_Хайдаров.
08.07.2020 - 14:15: ВОЙНА, ПОЛИТИКА И НАУКА - War, Politics and Science -> ПРАВОСУДИЯ.НЕТ - Карим_Хайдаров.
08.07.2020 - 13:02: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от Андрея Фурсова - Карим_Хайдаров.
07.07.2020 - 10:01: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от Дэвида Айка - Карим_Хайдаров.
07.07.2020 - 04:30: ЭКОНОМИКА И ФИНАНСЫ - Economy and Finances -> ПРОБЛЕМА КРИМИНАЛИЗАЦИИ ЭКОНОМИКИ - Карим_Хайдаров.
07.07.2020 - 04:24: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от Владимира Николаевича Боглаева - Карим_Хайдаров.
07.07.2020 - 04:00: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от Андрея Маклакова - Карим_Хайдаров.
Bourabai Research Institution home page

Bourabai Research - Технологии XXI века Bourabai Research Institution