Обработка и функции на PHP File().
⚡ Умно обобщение
Обработката на файлове в PHP използва богат набор от вградени функции за създаване, четене, запис, копиране и изтриване на файлове на сървъра. Това ръководство обхваща file_exists, fopen и техните режими, fwrite, fclose, fgets, copy, unlink и file_get_contents с практически примери.

Какво е файл?
Файлът е просто ресурс за съхраняване на информация на компютър.
Файловете обикновено се използват за съхраняване на информация като:
- Конфигурационни настройки на програма
- Прости данни, като например имена на контакти спрямо телефонни номера.
- Изображения, картини, снимки и подобни медийни файлове.
Поддръжка на PHP файлови формати
PHP файловите функции поддържат широк набор от файлови формати, които включват:
- File.txt
- File.log
- File.custom_extension, т.е. file.xyz
- Файл.csv
- File.gif, file.jpg и подобни графични формати
Файловете са полезни в няколко ситуации:
- Те предоставят постоянно и рентабилно решение за съхранение на прости данни, в сравнение с бази данни, които изискват друг софтуер и умения за управление на СУБД системи.
- Искате да съхранявате прости данни, като например сървърни лог файлове, за по-късно извличане и анализ.
- Искате да съхраните настройките на програмата, т.е. program.ini
Функции за PHP файлове
PHP предоставя удобен начин за работа с файлове чрез богатата си колекция от вградени функции.
Operaтинг системи като напр Windows намлява macOS не са чувствителни към главни и малки букви, докато Linux or Unix операционните системи са чувствителни към главни и малки букви.
Приемането на конвенция за именуване, като например само малки букви за именуване на файлове, е добра практика, която осигурява максимална съвместимост между платформите.
Нека сега разгледаме някои от най-често използваните файлови функции в PHP.
Функция PHP file_exists().
Тази функция се използва за определяне дали даден файл съществува или не.
- Това е полезно, когато искаме да знаем дали даден файл съществува, преди да го обработим.
- Можете също да използвате тази функция, когато създавате нов файл и искате да сте сигурни, че файлът вече не съществува на сървъра.
Функцията file_exists има следния синтаксис.
<?php file_exists($filename); ?>
ТУК,
- “file_exists()” е PHP функцията, която връща true, ако файлът съществува, и false, ако не съществува.
- „$filename“ е пътят и името на файла, който ще бъде проверен
Кодът по-долу използва функцията file_exists, за да определи дали файлът my_settings.txt съществува.
<?php if (file_exists('my_settings.txt')) { echo 'file found!'; } else { echo 'my_settings.txt does not exist'; } ?>
Запазете горния код във файл с име file_function.php. Ако сте запазили файла в папката phptuts в htdocs, отворете URL http://localhost/phptuts/file_function.php във вашия браузър. Ще получите следните резултати.
Функция PHP fopen().
Функцията fopen се използва за отваряне на файлове. Тя има следния синтаксис.
<?php fopen($file_name,$mode,$use_include_path,$context); ?>
ТУК,
- “fopen” е PHP функцията за отваряне на файл
- “$file_name” е името на файла, който ще бъде отворен
- „$mode“ е режимът, в който файлът трябва да бъде отворен. Таблицата по-долу показва режимите.
| вид | Descriptйон |
|---|---|
| r | • Прочетете файла от началото. • Връща false, ако файлът не съществува. • Само за четене |
| r+ | • Прочетете файла от началото • Връща false, ако файлът не съществува. • Четете и пишете |
| w | • Запишете във файла в началото • Съкращаване на файла до нулева дължина • Ако файлът не съществува, опитайте да го създадете. • Само писане |
| w+ | • Записване във файл в началото, съкращаване на файла до нулева дължина • Ако файлът не съществува, опитайте да го създадете. • Четете и пишете |
| a | • Добавяне към файла в края • Ако файлът не съществува, опитайте да го създадете. • Само писане |
| a+ | • Добавяне към файла в края • Ако файлът не съществува, опитайте да го създадете • Четете и пишете |
- „$use_include_path“ е по избор, по подразбиране е false. Ако е зададено на true, функцията търси и във включващия път.
- „$context“ е по избор и може да се използва за задаване на поддържания контекст.
Функция PHP fwrite().
Функцията fwrite се използва за запис във файлове.
Има следния синтаксис.
<?php fwrite($handle, $string, $length); ?>
ТУК,
- “fwrite” е PHP функцията за писане във файлове
- “$handle” е ресурсът на файловия указател
- „$string“ е данните, които ще бъдат записани във файла.
- „$length“ е по избор и може да се използва за задаване на максималната дължина на файла.
Функция PHP fclose().
Функцията fclose() се използва за затваряне на файл в PHP, който вече е отворен.
Има следния синтаксис.
<?php fclose($handle); ?>
ТУК,
- „fclose“ е PHP функция за затваряне на отворен файл
- “$handle” е ресурсът на файловия указател.
Нека сега разгледаме пример, който създава my_settings.txt. Ще използваме функциите fopen, fwrite и fclose.
Кодът по-долу „create_my_settings_file.php“ прилага горния пример.
| Отворете файла |
<?php $fh = fopen("my_settings.txt", 'w') or die("Failed to create file"); ?> |
| Затваряне на файл |
<?php fclose($fh); ?> |
| Създаване на файл |
<?php $fh = fopen("my_settings.txt", 'w') or die("Failed to create file"); $text = <<<_END localhost;root;pwd1234;my_database _END; fwrite($fh, $text) or die("Could not write to file"); fclose($fh); echo "File 1 written successfully"; ?> |
Тестване на кода
Отворете URL http://localhost/phptuts/create_my_settings.php в своя браузър.
Ще получите следната страница.
Забележка: ако дискът ви е пълен или нямате разрешение за запис на файлове, ще получите съобщение за грешка.
Превключете обратно към URL http://localhost/phptuts/file_function.phpКакви резултати получавате?
Функция PHP fgets().
Функцията fgets се използва за четене на PHP файлове ред по ред. Тя има следния основен синтаксис.
<?php fgets($handle); ?>
ТУК,
- „fgets“ е PHP функцията за четене на файлови редове
- “$handle” е ресурсът на файловия указател.
Нека сега разгледаме пример, който чете файла my_settings.txt, използвайки функциите fopen и fgets.
Кодът по-долу read_my_settings.php прилага горния пример.
<?php $fh = fopen("my_settings.txt", 'r') or die("File does not exist or you lack permission to open it"); $line = fgets($fh); echo $line; fclose($fh); ?>
ТУК,
- Функцията “fopen” връща указателя към файла, посочен в пътя на файла
- Функцията „die()“ се извиква, ако възникне грешка. Тя показва съобщение и прекратява изпълнението на скрипта.
Функция PHP copy().
Функцията за копиране в PHP се използва за копиране на файлове. Тя има следния основен синтаксис.
<?php copy($file,$copied_file); ?>
ТУК,
- “$file” указва пътя на файла и името на файла, който ще се копира.
- „$copied_file“ указва пътя и името на копирания файл
Кодът по-долу илюстрира изпълнението.
<?php copy('my_settings.txt', 'my_settings_backup.txt') or die("Could not copy file"); echo "File successfully copied to 2"; ?>
Изтриване на файл
Функцията unlink се използва за изтриване на файл. Кодът по-долу илюстрира имплементацията.
<?php if (!unlink('my_settings_backup.txt')) { echo "Could not delete file"; } else { echo "File 1 successfully deleted"; } ?>
Функция PHP file_get_contents().
Функцията file_get_contents се използва за четене на цялото съдържание на файла.
Разликата между file_get_contents и fgets е, че file_get_contents връща данните от файла като низ, докато fgets чете файла ред по ред.
Кодът по-долу илюстрира изпълнението.
<?php echo "<pre>"; // Enables display of line feeds echo file_get_contents("my_settings.txt"); echo "</pre>"; // Terminates pre tag ?>
Бърз справочник за функциите на PHP файлове
Таблицата по-долу обобщава файловите функции, разгледани в този урок.
| функция | Descriptйон |
|---|---|
| file_exists | Използва се за определяне дали даден файл съществува или не |
| fopen | Използва се за отваряне на файл. Връща указател към отворения файл |
| fwrite | Използва се за запис във файлове |
| fclose | Използва се за затваряне на отворен файл |
| fgets | Използва се за четене на файл ред по ред |
| копирате | Използва се за копиране на съществуващ файл |
| прекратяване на връзката | Използва се за изтриване на съществуващ файл |
| file_get_contents | Използва се за връщане на съдържанието на файл като низ |


