Файл уншиж бичих
PHP нь сервер дээрх файлуудтай шууд ажиллах боломжийг олгодог — текст файл унших, шинэ файл үүсгэх, өгөгдөл нэмэх, файл устгах зэрэг үйлдлүүдийг хийж болно. Жижиг програмуудад өгөгдлийн сангүйгээр зүгээр л файлд хадгалах нь хялбар шийдэл байдаг. Нэвтрэлтийн бүртгэл (log), тохиргоо, кэш зэрэгт файлыг өргөн ашигладаг.
Файл унших
Файл унших хамгийн хялбар арга бол file_get_contents() — бүх агуулгыг нэг мөрт string болгон буцаана:
<?php
// Файлын бүх агуулгыг унших
$агуулга = file_get_contents('мэдэгдэл.txt');
echo $агуулга;
// Файл байгаа эсэхийг шалгаад унших
if (file_exists('мэдэгдэл.txt')) {
$агуулга = file_get_contents('мэдэгдэл.txt');
echo $агуулга;
} else {
echo "Файл олдсонгүй.";
}
// Файлыг мөр мөрөөр массив болгон унших
$мөрүүд = file('жагсаалт.txt', FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
foreach ($мөрүүд as $мөр) {
echo $мөр . "<br>";
}
?>
file() функц нь файлын мөр бүрийг массивын элемент болгон буцаадаг тул мөр бүрийг тусад нь боловсруулахад тохиромжтой.
Файл бичих
file_put_contents() нь файлд бичих хамгийн хялбар арга. Файл байхгүй бол шинээр үүсгэнэ, байвал덮ийн бичнэ:
<?php
// Файлд бичих (байсан агуулгыг устгана)
file_put_contents('мэдэгдэл.txt', "Сайн уу, дэлхий!\n");
// Файлд нэмэх (байсан агуулга хэвээр үлдэнэ)
file_put_contents('мэдэгдэл.txt', "Шинэ мөр\n", FILE_APPEND);
// Массивыг файлд бичих
$өгөгдөл = "Нэр: Болд\nНас: 25\nХот: Улаанбаатар\n";
$амжилт = file_put_contents('хэрэглэгч.txt', $өгөгдөл);
if ($амжилт !== false) {
echo "Амжилттай хадгаллаа.";
} else {
echo "Хадгалахад алдаа гарлаа.";
}
?>
FILE_APPEND тугийг ашиглавал файлын эцэст нэмнэ — жишээлбэл log файл хөтлөхөд маш тохиромжтой.
fopen() — нарийн удирдлага
Илүү нарийн үйлдлүүд хийхэд fopen() функцийг ашигладаг. Файлыг нээх горим (mode)-оос хамааран унших, бичих, нэмэх боломжтой:
<?php
// 'r' — унших горим
$файл = fopen('мэдэгдэл.txt', 'r');
if ($файл) {
while (!feof($файл)) {
$мөр = fgets($файл);
echo $мөр . "<br>";
}
fclose($файл); // файлыг заавал хаана
}
// 'w' — бичих горим (файлыг дахин тохируулна)
$файл = fopen('шинэ.txt', 'w');
if ($файл) {
fwrite($файл, "Эхний мөр\n");
fwrite($файл, "Хоёрдугаар мөр\n");
fclose($файл);
}
// 'a' — нэмэх горим
$файл = fopen('бүртгэл.txt', 'a');
if ($файл) {
$цаг = date('Y-m-d H:i:s');
fwrite($файл, "[{$цаг}] Хэрэглэгч нэвтэрлээ\n");
fclose($файл);
}
?>
fopen() ашигласны дараа fclose() дуудахаа мартвал хэрэглэгдэж буй нөөц чөлөөлөгдөхгүй — энэ бол нийтлэг алдаа.
Файлын мэдээлэл авах
<?php
$файл = 'мэдэгдэл.txt';
if (file_exists($файл)) {
// Файлын хэмжээ (байт)
echo filesize($файл) . " байт";
// Сүүлд өөрчлөгдсөн цаг
echo date('Y-m-d H:i:s', filemtime($файл));
// Файл уу, хавтас уу?
echo is_file($файл) ? "Файл байна" : "Файл биш";
// Унших боломжтой эсэх
echo is_readable($файл) ? "Унших боломжтой" : "Унших боломжгүй";
}
// Файл устгах
if (file_exists('хуучин.txt')) {
unlink('хуучин.txt');
echo "Устгалаа.";
}
?>
Бодит жишээ — энгийн бүртгэл систем
Маягтаас ирсэн мэдэгдлийг файлд хадгалах жишээ:
<?php
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
$мэдэгдэл = trim($_POST['мэдэгдэл'] ?? '');
if ($мэдэгдэл !== '') {
$цаг = date('Y-m-d H:i:s');
$мөр = "[{$цаг}] " . htmlspecialchars($мэдэгдэл) . "\n";
file_put_contents('мэдэгдлүүд.txt', $мөр, FILE_APPEND);
echo "Хадгаллаа!";
}
}
// Хадгалагдсан мэдэгдлүүдийг унших
if (file_exists('мэдэгдлүүд.txt')) {
$агуулга = file_get_contents('мэдэгдлүүд.txt');
echo "<pre>" . $агуулга . "</pre>";
}
?>
Дараагийн хичээлд:
Объект хандалтат програмчлал (OOP)-ийн суурь болох класс ба объект ойлголтыг судална. Класс үүсгэж, объект үүсгэж, шинж чанар (property) болон аргуудыг (method) хэрхэн ашиглахыг жишээгээр үзнэ.