Получить первую строку файла php

Вывести первую строку с файла

Как бы вывести саму строку из файла это не проблемно. Но вот у меня немного другая ситуация. Я сканирую все файлы из директории и вывожу их. И тут начинаются проблемы. Вообщем, подскажите, что не так.

1 2 3 4 5 6 7 8 9 10 11 12 13 14
 $dir = "Slist/1/"; //задаём имя директории if(is_dir($dir)) { //проверяем наличие директории echo $dir.' - директория существует;
'
; $files = scandir($dir); //сканируем (получаем массив файлов) array_shift($files); // удаляем из массива '.' array_shift($files); // удаляем из массива '..' for($i=0; $isizeof($files); $i++) { $onelist=file('$dir.$files[$i]'); echo '-файл: .$dir.$files[$i].'" title="открыть/скачать файл или страницу">'.echo $onelist[0].';
'
; //выводим все файлы } } else echo $dir.' -такой директории нет;
'
; ?>

Вывести первую строку с html файла
Всем привет ! Нужно вывести первую строку с каждого *.html файла в папке (желательно без тегов).

Прочитать из файла первую строку
Доброго времени суток. Как прочитать из файла первую строку? Пробовал так: $handle =.

Нужно прочитать из текстового файла определённую строку (не первую)
Люди, спасайте. Перерыл весь инет, никак найти не могу. В книге у меня какой-то бред написан. Нужно.

Вывести строку из файла
Навеяло отсюда: https://www.cyberforum.ru/php-beginners/thread467113.html А можно ли сделать так.

Лучший ответ

Сообщение было отмечено Coder_done как решение

Решение

Зачем тут стоит вторая функция echo? Ее нужно убрать.

Вот тут вообще непонятно что. Во-первых зачем брать в кавычки, причем одинарные? Покажу на примере:

$a = "Hello"; echo '$a'; // вывод - $a echo "$a"; // вывод - Hello // но зачем брать в кавычки если можно просто: echo $a; // вывод - Hello
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
 $dir = "Slist/1/"; //задаём имя директории if(is_dir($dir)) { //проверяем наличие директории echo $dir.' - директория существует;
'
; $files = scandir($dir); //сканируем (получаем массив файлов) array_shift($files); // удаляем из массива '.' array_shift($files); // удаляем из массива '..' for($i=0; $isizeof($files); $i++) { $onelist=file($dir.$files[$i]); echo '-файл: .$dir.$files[$i].'" title="открыть/скачать файл или страницу">'.$onelist[0].';
'
; //выводим все файлы } } else echo $dir.' -такой директории нет;
'
; ?>

Источник

Запись и чтение файлов в PHP

Не пропусти свежие посты, подпишись:

Сохранение данных в файл

Самым простым способом записи данных файл, является вызов функции file_put_contents(). Функция принимает 3 аргумента, путь к файлу, данные и флаг позволяющий немного изменить поведение функции. Она записывает содержание переменной в файл. Если файл не найден, то она попытается его создать, если же файл существует, то по умолчанию, функция полностью перезапишет данные в нём. Чтобы изменить это, следует третьим аргументом передать флаг FILE_APPEND , тогда данные будут дописаны в конец файла.

Функция file_put_contents()

 $data = 'Некоторые данные для сохранения а файл ' . date('d.m.Y H:i:s') . "\n"; $filePath = __DIR__ . '/log.txt'; file_put_contents($filePath, $data); 

Функции fopen() / fwrite()

Функции fopen(), fwrite(), fclose() связаны предназначены для гибкой работы с файлами.

  • fopen() — открытие или создание файла.
  • fwrite() — запись данных.
  • fclose() — закрытие файла.
 $data = 'Некоторые данные для сохранения а файл ' . date('d.m.Y H:i:s') . "\n"; $filePath = __DIR__ . '/log.txt'; $fh = fopen($filePath, 'w'); fwrite($fh, $data); fclose($fh); 

Дописать строку в начало файла

 $addData = 'Дополнительные данные ' . date('d.m.Y H:i:s') . "\n"; $filePath = __DIR__ . '/log.txt'; //Пример с предварительным получением содержимого существующего файла $currentLog = file_get_contents($filePath); file_put_contents($filePath, $addData . $currentLog); 

Дописать строку в конце файла

 $addData = 'Дополнительные данные ' . date('d.m.Y H:i:s') . "\n"; $filePath = __DIR__ . '/log.txt'; //Пример с флагом file_put_contents($filePath, $addData, FILE_APPEND ); 
 $addData = 'Дополнительные данные ' . date('d.m.Y H:i:s') . "\n"; $filePath = __DIR__ . '/log.txt'; $fh = fopen($filePath, 'a'); fwrite($fh, $data); fclose($fh); 

Записать массив в файл

При записи массивов в файл их предварительно нужно преобразовать в строку, путём сериализации массива или же конвертированию в JSON.

Функция serialize()

 $arr = ['foo', 'bar', 'hallo', 'world']; $text = base64_encode(serialize($arr)); file_put_contents(__DIR__ . '/log.txt', $text); 

Функция json_encode()

 $arr = ['foo', 'bar', 'hallo', 'world']; $text = json_encode($arr, JSON_UNESCAPED_UNICODE); file_put_contents(__DIR__ . '/log.json', $text); 

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

 $filePath = __DIR__ . '/log.txt'; $log = file_get_contents($filePath); echo $log; 
 $log = ''; $fh = fopen($filePath, 'r'); while (!feof($fh)) < $line = fgets($fh); $log .= $line . "\n"; >fclose($fh); echo $log; 

Чтение из файла в массив

Если файл содержит данные подразумевающие дальнейшую конвертацию в массив для удобства работы, вы можете использовать готовую функцию file(). Функция принимает 3 аргумента, обязательный путь к файлу и необязательные, флаг влияющий на поведение функции при чтении файла, а так же контекст.

  • FILE_USE_INCLUDE_PATH — функция ищет файл в include_path
  • FILE_IGNORE_NEW_LINES — Пропускать новую строку в конце каждого элемента массива
  • FILE_SKIP_EMPTY_LINES — Пропускать пустые строки
 $filePath = __DIR__ . '/log.txt'; $arr = file($filePath); print_r($arr); 

Чтение файла в браузер

 $filePath = __DIR__ . '/log.txt'; readfile($filePath); 

Получить первую строку из файла

 $filePath = __DIR__ . '/log.txt'; $fh = fopen($filePath, 'r'); echo fgets($fh); fclose($fh); 
 $filePath = __DIR__ . '/log.txt'; $arr = file($filePath); echo $arr[0]; 
 $filePath = __DIR__ . '/log.txt'; $arr = file($filePath); $line3 = array_slice($arr, 0, 3); //получаем первые 3 строки print_r($line3); 

Получить последнюю строку из файла

Тут всё основано на преобразовании содержимого файла в массив и дальнейшее его чтение по индексам.

 $filePath = __DIR__ . '/log.txt'; $arr = file($arr); $lastLine = array_slice($array, -1); echo $lastLine[0]; 

Получим последние 3 строки из файла

 $filePath = __DIR__ . '/log.txt'; $arr = file($arr); $last3 = array_slice($array, -3); print_r($last3); 

Надеюсь пост был вам полезен! Удачи! )

Не пропусти свежие посты, подпишись:

Источник

Запись и чтение файлов в PHP

Примеры сохранения и чтения текстовых данных и массивов в файлы.

Сохранение в файл

Функция file_put_contents() записывает содержимое переменной в файл, если файла не существует. то пытается его создать, если существует то полностью перезапишет его.

File_put_contents:

$text = 'Lorem ipsum dolor sit amet, consectetur adipiscing elit.'; $filename = __DIR__ . '/file.txt'; file_put_contents($filename, $text);

Fopen / fwrite:

Набор функций fopen, fwrite, fclose предназначены для более гибкой работы с файлами.

  • fopen – открытие или создание файла.
  • fwrite – запись данных.
  • fclose – закрытие файла.
$text = 'Lorem ipsum dolor sit amet, consectetur adipiscing elit.'; $filename = __DIR__ . '/file.txt'; $fh = fopen($filename, 'w'); fwrite($fh, $text); fclose($fh);

Возможные режимы fopen():

Mode Описание
r Открывает файл только для чтения, помещает указатель в начало файла.
r+ Открывает файл для чтения и записи, помещает указатель в начало файла.
w Открывает файл только для записи, помещает указатель в начало файла и обрезает файл до нулевой длины. Если файл не существует – пробует его создать.
w+ Открывает файл для чтения и записи, помещает указатель в начало файла и обрезает файл до нулевой длины. Если файл не существует – пытается его создать.
a Открывает файл только для записи, помещает указатель в конец файла. Если файл не существует – пытается его создать.
a+ Открывает файл для чтения и записи, помещает указатель в конец файла. Если файл не существует – пытается его создать.
x Создаёт и открывает только для записи; помещает указатель в начало файла. Если файл уже существует, вызов fopen() закончится неудачей, вернёт false и выдаст ошибку. Если файл не существует, попытается его создать.
x+ Создаёт и открывает для чтения и записи, в остальном имеет то же поведение, что и « x ».
c Открывает файл только для записи. Если файл не существует, то он создаётся. Если же файл существует, то он не обрезается (в отличие от « w »), и вызов к этой функции не вызывает ошибку (также как и в случае с « x »). Указатель на файл будет установлен на начало файла.
c+ Открывает файл для чтения и записи, в остальном имеет то же поведение, что и « c ».

Доступно в место fwrite() используют fputs() , разницы ни какой т.к. эта функция является псевдонимом.

Дописать строку в начало файла

$new_str = 'New line of text.'; $filename = __DIR__ . '/file.txt'; $text = file_get_contents($filename); file_put_contents($filename, $new_str . PHP_EOL . $text);

Дописать строку в конец файла

$new_str = 'New line of text.'; $filename = __DIR__ . '/file.txt'; file_put_contents($filename, PHP_EOL . $new_str, FILE_APPEND);
$new_str = 'New line of text.'; $filename = __DIR__ . '/file.txt'; $fh = fopen($filename, 'c'); fseek($fh, 0, SEEK_END); fwrite($fh, PHP_EOL . $new_str); fclose($fh);

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

Чтение всего файла

$filename = __DIR__ . '/file.txt'; $text = file_get_contents($filename); echo $text;
$filename = __DIR__ . '/file.txt'; $text = ''; $fh = fopen($filename, 'r'); while (!feof($fh)) < $line = fgets($fh); $text .= $line . PHP_EOL; >fclose($fh); echo $text;

Чтение файла в массив

Функция file() – читает содержимое файла и помещает его в массив, доступны опции:

  • FILE_IGNORE_NEW_LINES – пропускать новую строку в конце каждого элемента массива.
  • FILE_SKIP_EMPTY_LINES – пропускать пустые строки.
$filename = __DIR__ . '/file.txt'; $array = file($filename); print_r($array);

Чтение файла сразу в браузер

$filename = __DIR__ . '/file.txt'; readfile($filename);

Получить первую строку из файла

$filename = __DIR__ . '/file.txt'; $fh = fopen($filename, 'r'); echo fgets($fh); fclose($fh); /* или */ $filename = __DIR__ . '/file.txt'; $array = file($filename); echo $array[0];

Первые три строки из файла:

$filename = __DIR__ . '/file.txt'; $array = file($filename); $first_3 = array_slice($array, 0, 3); print_r($first_3);

Получить последнюю строку из файла

$filename = __DIR__ . '/file.txt'; $array = file($filename); $last = array_slice($array, -1); echo $last[0];

Последние три строки из файла:

$filename = __DIR__ . '/file.txt'; $array = file($filename); $last_3 = array_slice($array, -3); print_r($last_3);

Запись и чтение массивов в файл

Serialize

Не очень удачное хранение данных в сериализованном виде т.к. изменение одного символа может привести к ошибке чтения всех данных в файле. Подробнее в статье «Функция serialize, возможные проблемы»

Запись:

$array = array('foo', 'bar', 'hallo', 'world'); $text = base64_encode(serialize($array)); file_put_contents(__DIR__ . '/array.txt', $text);

Чтение:

$array = unserialize(base64_decode($text)); print_r($array);

JSON

Запись:

$array = array('foo', 'bar', 'hallo', 'world'); $json = json_encode($array, JSON_UNESCAPED_UNICODE); file_put_contents(__DIR__ . '/array.json', $json);

Чтение:

$json = file_get_contents(__DIR__ . '/array.json'); $array = json_decode($json, true); print_r($array);

Источник

Читайте также:  Api demo in php
Оцените статью