Когда я начинаю процесс написания своего сайта в PHP и MySQL, один из первых написанных PHP скриптов – это скрипт для инициализации моей базы данных. Отбросьте / создайте базу данных. Снимите / создайте каждую из таблиц. Затем загрузите таблицы из литералов в скрипт.
Все работает отлично! Whoohoo 🙂
Но я предпочел бы читать данные из файлов, а не жестко-кодировать их в PHP-скрипте.
У меня есть пара книг по PHP, но они все ориентированы на веб-разработку с использованием MySQL. Я не могу ничего найти о чтении и записи в обычные файлы.
Да, я знаю, что здесь есть gazillion вопросы о stackoverflow о чтении TXT-файлов, но когда я смотрю на них, они предназначены для C или C # или VB или Perl. Я начинаю думать, что PHP просто не умеет читать файлы 🙁
Все, что мне нужно, – это небольшой пример PHP, как открыть TXT-файл на сервере, прочитать его последовательно, отобразить данные на экране и закрыть файл, как в этом псевдокоде:
program readfile; handle = open('myfile.txt'); data = read (handle); while (not eof (handle)) begin display data; data = read (handle); end; close (handle); end;
Мне также нужно будет писать файлы на сервере, когда я доберусь до той части своего сайта, где люди загружают аватары, и сохраняют их как файлы JPG или GIF. Но это на потом.
Благодаря!
Из руководства PHP для fread()
:
<?php // get contents of a file into a string $filename = "/usr/local/something.txt"; $handle = fopen($filename, "r"); $contents = fread($handle, filesize($filename)); fclose($handle); ?>
EDIT для комментария, вы можете прочитать файл строки за строкой с помощью fgets()
<?php $handle = @fopen("/tmp/inputfile.txt", "r"); if ($handle) { while (($buffer = fgets($handle, 4096)) !== false) { echo $buffer; } if (!feof($handle)) { echo "Error: unexpected fgets() fail\n"; } fclose($handle); } ?>
Все, что мне нужно, – это небольшой пример PHP, как открыть TXT-файл на сервере, прочитать его последовательно, отобразить данные на экране и закрыть файл, как в этом псевдокоде:
echo file_get_contents('/path/to/file.txt');
Да, это краткое описание, см. file_get_contents
, вам обычно не нужен цикл:
$file = new SPLFileObject('/path/to/file.txt'); foreach($file as $line) { echo $line; }
Ну, так как вы спрашиваете о ресурсах по этому вопросу, в документации PHP.net есть целая книга.
Основной пример:
<?php // get contents of a file into a string $filename = "/usr/local/something.txt"; $handle = fopen($filename, "r"); $contents = fread($handle, filesize($filename)); fclose($handle); ?>
Почему вы не читаете документацию php о fopen
$file = fopen("source/file.txt","r"); if(!file) { echo("ERROR:cant open file"); } else { $buff = fread ($file,filesize("source/file.txt")); print $buff; }
Чтение php-файлов – это простой учебник по чтению из текстового файла. Это очень простой учебник, но также охватывает различные аспекты чтения файлов.
file_get_contents делает все это для вас и возвращает текстовый файл в строке 🙂
Вы хотите читать строки за строкой? Используйте fgets .
$handle = @fopen("myfile.txt", "r"); if ($handle) { while (($content = fgets($handle, 4096)) !== false) { //echo $content; } if (!feof($handle)) { echo "Error: unexpected fgets() fail\n"; } fclose($handle); }