PHP soubory Pro výukové účely na SPŠ Zlínvytvořil RNDr.Vladimír Vaščák PHP Úvod fopen file_exists fgets fclose fputs Další funkce Ukázky Úkol 1. Úvod Protože na školním výukovém serveru není nainstalován databázový server MySQL, budeme pracovat pouze se soubory. Všechny informace získáte na Manuál PHP. Funkce pro práci ze soubory na Funkce filesystému. 2. fopen Otevře soubor nebo URL int fopen (string filename, string mode [, int use_include_path]) Mode: r - pouze pro čtení; ukazatel na začátek souboru r+ - pro čtení a zápis; ukazatel na začátek souboru w - pouze pro zápis; ukazatel na začátek souboru a zkrátí soubor na nulovou délku; pokud soubor neexistuje, pokusí se ho vytvořit w+ - pro čtení a zápis; ukazatel na začátek souboru a zkrátí soubor na nulovou délku; pokud soubor neexistuje, pokusí se ho vytvořit a - pouze pro zápis; ukazatel na konec souboru; pokud soubor neexistuje, pokusí se ho vytvořit a+ - pro čtení a zápis; nastaví ukazatel na konec souboru; pokud soubor neexistuje, pokusí se ho vytvořit 3. file_exists Zjistí zda soubor existuje. bool file_exists (string filename) 4. fgets Přečte řádek ze souboru. string fgets (int fp, int length) Vratí řetězec o délce maximálně length - 1 byte přečtený ze souboru. 5. fclose Zavře otevřený soubor. int fclose (int fp) Příklad: $soubor = "pokus.txt"; if (file_exists($soubor)) { // existuje soubor $fp = fopen($soubor, "r"); // otevření souboru } if (!$fp) { return; //nepodařilo se otevření } $vysledek = fgets($fp,50); // přečtení souboru fclose($fp); // zavření souboru echo $vysledek; Ukázka: Klik 6. fputs nebo fwrite Zapíše zvolený textový řetězec do vybraného souboru. int fputs (int fp, string str [, int length]) 7. Další funkce int filesize (string filename) - vrátí velikost souboru string fread (int fp, int length) - binární čtení ze souboru int fseek (int fp, int offset [, int whence]) - posune ukazatel v souboru int rewind (int fp) - posune ukazatel na začátek string fgetc (int fp) - přečte jeden znak ze souboru int feof (int fp) - test konce souboru string fgetss (int fp, int length [, string allowable_tags]) - přečte řádek ze souboru a odstraní HTML značky Zjistí zda soubor existuje. bool file_exists (string filename) 8. Ukázky Pro jednoduchost skriptů neprovádím žádné ošetření chyb. Přečtení této stránky bez značek. <?php $fp = fopen("php04.html", "r"); while (!feof($fp)) { $data = fgetss($fp, 1024); echo $data; } fclose($fp); ?> Stránka s počitadlem. <?php function pocitej () { $fp = fopen("pocitadlo.txt", "r+"); //otevřeme soubor $pocet = fgets($fp,6) + 1; //přečteme hodnotu a zvětšíme o 1 rewind($fp); //přesuneme ukazatel na začátek fputs($fp, $pocet); //vložíme novou hodnotu fclose($fp); //zavřeme soubor echo "<h1>počet přístupů: ".$pocet."</h1>"; //vypíšeme hodnotu } pocitej(); ?> 5. Úkol Vložte na svou úvodní stránku počitadlo. Pozor soubor z hodnotou počítadla "např. pocitadlo.txt" musíte nastavit na zápis. Soubor index.html přejmenujte na index.php. Soubor index.html v adresáři public_html pak smažte. © 2007 Pro výuku na SPŠ Zlín připravil RNDr. Vladimír Vaščák