Práca so súbormi
Manipulácia s celými súbormi
<?php
if (!file_exists("subor.txt"))
echo "Chyba: Súbor nebol nájdený!";
?>
Copy() - kopírovanie súboru z miesta na miesto.
Rename() - premenovanie súboru.
Unlink() - zmazanie súboru.
is_file() - vracia TRUE, ak sa jedná o súbor.
is_dir() - vracia TRUE, ak sa jedná o priečinok.
is_link() - vracia TRUE, ak je zadaný názov odkazom na súbor fyzicky umiestnený inde.
is_executable() - vracia TRUE, ak je daný súbor spustiteľný (z PHP je možné spúšťať súbory pomocou funkcie shell_exec()).
is_readable() - určuje, či je zo súboru možné čítať.
is_writeable() a is_writable - funkcie zisťujú, či je možné do súboru zapisovať.
is_uploaded_file() - vracia TRUE, pokiaľ zadané meno odpovedá súboru nahranému na server z formuláru metódou POST.
Manipulácia s obsahom súborov
Otvorenie súboru
resource fopen ( string názovsúboru, string mód [, int používať_cesty_include [, resource zcontext]] )
| Mód | Význam |
|---|---|
r |
Otvorenie súboru len na čítanie. |
r+ |
Otvorenie súboru na čítanie a zároveň aj zapisovanie. |
w |
Otvorenie súboru len na zápis. |
w+ |
Otvorenie súboru pre zápis pri súčasnej možnosti čítania. |
a |
Otvorenie súboru pre zápis za koniec súboru. |
a+ |
Otvorenie súboru pre zápis za koniec súboru, pričom je možné zo súboru aj čítať. |
Funkcia fopen() vracia ako funkčnú hodnotu ukazovateľ na práve otvorený súbor.
<?php
$fp = fopen("http://www.example.com/súbor.txt", "r");
// otvorenie súboru na čítanie
$fp2 = fopen("súbor.txt", "w+");
// otvorenie súboru na zápis s možnosťou čítania
?>
Čítanie súboru
fread() - číta z dátového súboru po blokoch, ktorého veľkosť je možné určiť v druhom parametri.
<?php
$blok = fread($fp2, 1024);
// načíta 1 kB
?>
fgets() - používa sa najmä pre textové súbory, lebo je orientovaná na riadky. Štandardne načíta jeden riadok zo zadaného súboru, ale je potrebné určiť maximálnu dĺžku riadku druhým parametrom. Štandardnou hodnotou je 1024, teda 1 kB.
<?php
$riadok = fgets($fp, 4096);
// načíta riadok, ak nie je dlhší ako 4 kB
?>
fgetc() - zo vstupného súboru načíta jeden znak.
Vo všetkých troch funkciách je ako prvý parameter zadávaný ukazovateľ na súbor, z ktorého chceme čítať.
Zápis do súboru
fwrite ( ukazovateľ_na_súbor, string reťazec [, int dĺžka] )
<?php
$filename = fopen('test.txt', 'w');
fwrite($filename, 'tento retazec je zapisany do suboru test.txt');
fclose($filename);
?>
Uzatvorenie súboru
bool fclose(deskriptor_súboru);
Súbor, na ktorý ukazuje deskriptor bude zatvorený.
Vracia TRUE pri úspechu alebo FALSE pri chybe.
Deskriptor súboru musí byť platný a musí ukazovať na súbor, ktorý bol úspešne otvorený pomocou fopen() alebo fsockopen().
<?php
$handle = fopen('subor.txt', 'r');
fclose($handle);
?>
Upload súborov
Formulár:
<form enctype="multipart/form-data" action="uploader.php" method="POST">
<input type="hidden" name="MAX_FILE_SIZE" value="100000" />
Vyberte súbor na upload: <input name="uploadedfile" type="file" />
<input type="submit" value="Nahraj súbor" />
</form>
enctype="multipart/form-data" - potrebné pre odosielanie súboru
Súbor uploader.php:
<?php
$target_path = "uploads/"; // miesto na serveri, kde bude súbor uložený
$target_path = $target_path . basename( $_FILES['uploadedfile']['name']);
if (move_uploaded_file($_FILES['uploadedfile']['tmp_name'], $target_path))
{
echo "Súbor ". basename( $_FILES['uploadedfile']['name']). " bol nahraný na server";
}
else
{
echo "Počas operácie nastala chyba, skúste znova!";
}
?>

