Могу ли я прочитать файл .TXT с PHP?

Когда я начинаю процесс написания своего сайта в 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); }