От автора: сегодня разберемся, как происходит в PHP чтение из файла. Начнем с легких скриптов и закончим реализацией более сложных. Стартуем!
Полегче
Начнем с рассмотрения функции file_get_contents(). Она «запихивает» содержимое файла в один ряд. Вот так:
1 2 3 4 |
<?php $content=file_get_contents('1.txt'); echo $content; ?> |
Теперь постараемся реализовать построчное извлечение информации, а не «гурьбой». Для этого применим file(). Данная функция возвращает array строк. Ну, а с массивами (я надеюсь) мы разберемся:
1 2 3 4 |
<?php $content=file('1.txt'); print_r ($content); ?> |
Что-то построчно «вынуть» контент пока не получается. А мы сейчас «ударим» по массиву циклом foreach и array разобьется на нужные «осколки».
1 2 3 4 5 6 7 |
<?php $content=file('1.txt'); foreach($content as $str1) { echo $str1."<br />"; } ?> |
Так смотрится намного изящнее.
Посложнее
Начинаем потихоньку «окунаться». Тут главное не начать «зарываться», а то можно застрять надолго. В предыдущих примерах мы только то и делали, что извлекали, извлекали и еще раз извлекали. А если работать с записью нужно? Вооружаемся примером:
1 2 3 4 5 6 7 8 9 10 11 |
<?php $content='1.txt'; $next_str = file_get_contents($content); $next_str.= "четвертая строка"; file_put_contents($content, $next_str); foreach(file($content,FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES)as $str1) { echo $str1."<br />"; } ?> |
Обратите внимание, что мы не только впихнули текст, но и вывели его из файла 1.txt.Также для того, чтобы строка нормально выводилась, я использовал дополнительные флаги. Но они работают только при чтении одной строки. Дальше все опять начнет лепиться в один ряд. Для решения этой проблемы нужно применять функции из семейства fopen(), переставлять курсор и т.д. Все мы уже проходили. Так что сами :).
Что касается извлечения данных из exel форматов, то тут придется воспользоваться сторонней библиотекой. Но это уже из другого фильма!
Комментарии (1)