Обработка и функции на PHP File().

⚡ Умно обобщение

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

  • 📄 Какви файлове се съхраняват: Файловете съдържат конфигурационни настройки, регистрационни файлове и прости данни, което предоставя евтин вариант за постоянно съхранение в сравнение с база данни.
  • 🔍 Проверка на файлове: file_exists() потвърждава дали даден файл е наличен, преди да го прочетете или създадете, като по този начин се избягват грешки.
  • 📂 Отваряне на файлове: fopen() отваря файл в режим като r, w или a, който контролира четенето, писането и добавянето на елементи.
  • ✍️ Писане и завършване: fwrite() изпраща данни към файловия дескриптор, а fclose() освобождава дескриптора, когато работата е завършена.
  • 📖 Четене на файлове: fgets() чете ред по ред, докато file_get_contents() връща целия файл като един низ.
  • 🗂️ Копиране и изтриване: copy() дублира файл в нов път, а unlink() изтрива файл за постоянно от сървъра.
  • 🤖 AI Assist: Инструментите с изкуствен интелект могат да генерират код за синтактичен анализ на файлове и бързо да разрешават грешки, свързани с разрешения или неуспешно отваряне на поток.

Обработка на PHP файлове

Какво е файл?

Файлът е просто ресурс за съхраняване на информация на компютър.

Файловете обикновено се използват за съхраняване на информация като:

  • Конфигурационни настройки на програма
  • Прости данни, като например имена на контакти спрямо телефонни номера.
  • Изображения, картини, снимки и подобни медийни файлове.

Поддръжка на 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 file_exists().

Функция 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 в своя браузър.

Ще получите следната страница.

PHP функция fclose

Забележка: ако дискът ви е пълен или нямате разрешение за запис на файлове, ще получите съобщение за грешка.

Превключете обратно към 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 Използва се за връщане на съдържанието на файл като низ

Въпроси и Отговори

fgets чете по един ред на извикване, fread чете зададен брой байтове от отворен дескриптор, а file_get_contents чете целия файл в низ с едно извикване, без да е необходимо fopen или fclose.

fwrite записва в отворен файлов дескриптор и се нуждае от fopen и fclose около него. file_put_contents отваря, записва и затваря файла с едно извикване, което го прави по-краткият избор за прости записи.

Използвайте is_writable('file.txt'), за да проверите правата за запис преди запис, и file_exists(), за да потвърдите, че файлът е наличен. В Unix системи, chmod() може да променя правата, ако уеб сървърът притежава файла.

Да. Опишете формата, като например CSV, JSON или оформление на лог файлове, и изкуственият интелект може да генерира код, използвайки fgetcsv, json_decode или персонализиран цикъл, плюс обработка на грешки за липсващи или деформирани файлове. Тествайте с реални данни.

Да. Споделете пътя и грешката и изкуственият интелект може да идентифицира грешен относителен път, липсващ файл или проблем с разрешенията, след което да предложи използване на абсолютен път, създаване на файла или коригиране на разрешенията.

Обобщете тази публикация с: