- Php сохранение данных файл
- Запись и чтение файлов в PHP
- Сохранение данных в файл
- Функция file_put_contents()
- Функции fopen() / fwrite()
- Дописать строку в начало файла
- Дописать строку в конце файла
- Записать массив в файл
- Функция serialize()
- Функция json_encode()
- Чтение из файла
- Чтение из файла в массив
- Чтение файла в браузер
- Получить первую строку из файла
- Получить последнюю строку из файла
- Запись и чтение файлов в PHP
- Сохранение в файл
- File_put_contents:
- Fopen / fwrite:
- Возможные режимы fopen():
- Дописать строку в начало файла
- Дописать строку в конец файла
- Чтение из файла
- Чтение всего файла
- Чтение файла в массив
- Чтение файла сразу в браузер
- Получить первую строку из файла
- Первые три строки из файла:
- Получить последнюю строку из файла
- Последние три строки из файла:
- Запись и чтение массивов в файл
- Serialize
- Запись:
- Чтение:
- JSON
- Запись:
- Чтение:
Php сохранение данных файл
- Different ways to write a PHP code
- How to write comments in PHP ?
- Introduction to Codeignitor (PHP)
- How to echo HTML in PHP ?
- Error handling in PHP
- How to show All Errors in PHP ?
- How to Start and Stop a Timer in PHP ?
- How to create default function parameter in PHP?
- How to check if mod_rewrite is enabled in PHP ?
- Web Scraping in PHP Using Simple HTML DOM Parser
- How to pass form variables from one page to other page in PHP ?
- How to display logged in user information in PHP ?
- How to find out where a function is defined using PHP ?
- How to Get $_POST from multiple check-boxes ?
- How to Secure hash and salt for PHP passwords ?
- Program to Insert new item in array on any position in PHP
- PHP append one array to another
- How to delete an Element From an Array in PHP ?
- How to print all the values of an array in PHP ?
- How to perform Array Delete by Value Not Key in PHP ?
- Removing Array Element and Re-Indexing in PHP
- How to count all array elements in PHP ?
- How to insert an item at the beginning of an array in PHP ?
- PHP Check if two arrays contain same elements
- Merge two arrays keeping original keys in PHP
- PHP program to find the maximum and the minimum in array
- How to check a key exists in an array in PHP ?
- PHP | Second most frequent element in an array
- Sort array of objects by object fields in PHP
- PHP | Sort array of strings in natural and standard orders
- How to pass PHP Variables by reference ?
- How to format Phone Numbers in PHP ?
- How to use php serialize() and unserialize() Function
- Implementing callback in PHP
- PHP | Merging two or more arrays using array_merge()
- PHP program to print an arithmetic progression series using inbuilt functions
- How to prevent SQL Injection in PHP ?
- How to extract the user name from the email ID using PHP ?
- How to count rows in MySQL table in PHP ?
- How to parse a CSV File in PHP ?
- How to generate simple random password from a given string using PHP ?
- How to upload images in MySQL using PHP PDO ?
- How to check foreach Loop Key Value in PHP ?
- How to properly Format a Number With Leading Zeros in PHP ?
- How to get a File Extension in PHP ?
- How to get the current Date and Time in PHP ?
- PHP program to change date format
- How to convert DateTime to String using PHP ?
- How to get Time Difference in Minutes in PHP ?
- Return all dates between two dates in an array in PHP
- Sort an array of dates in PHP
- How to get the time of the last modification of the current page in PHP?
- How to convert a Date into Timestamp using PHP ?
- How to add 24 hours to a unix timestamp in php?
- Sort a multidimensional array by date element in PHP
- Convert timestamp to readable date/time in PHP
- PHP | Number of week days between two dates
- PHP | Converting string to Date and DateTime
- How to get last day of a month from date in PHP ?
- PHP | Change strings in an array to uppercase
- How to convert first character of all the words uppercase using PHP ?
- How to get the last character of a string in PHP ?
- How to convert uppercase string to lowercase using PHP ?
- How to extract Numbers From a String in PHP ?
- How to replace String in PHP ?
- How to Encrypt and Decrypt a PHP String ?
- How to display string values within a table using PHP ?
- How to write Multi-Line Strings in PHP ?
- How to check if a String Contains a Substring in PHP ?
- How to append a string in PHP ?
- How to remove white spaces only beginning/end of a string using PHP ?
- How to Remove Special Character from String in PHP ?
- How to create a string by joining the array elements using PHP ?
- How to prepend a string in PHP ?
Запись и чтение файлов в 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);