PHP kézikönyv
Előző |  | Következő

# 39. Fejezet. Távoli állományok kezelése

Amennyiben az allow_url_fopen be van kapcsolva a `php.ini`-ben, HTTP és FTP URL-eket lehet paraméterként átadni majdnem minden olyan függvénynek, amelyek fájlnevet kér paraméterül, beleértve az include(), include_once(), require() és require_once() utasításokat is. További információkért a használható protokollokkal kapcsolatban nézz el ide: M Függelék.

> Megjegyzés: PHP 4.0.3 és régebbi verziókban az ilyen URL-ek értelmezéséhez szükséges a --enable-url-fopen-wrapper beállítás bekapcsolása.

> Megjegyzés: A Windows-os, 4.3 előtti változatok PHP nem támogatják a távoli állományelérést a következő függvények esetén: include(), include_once(), require() és require_once(), valamint az imagecreatefromXXX függvények esetén. Ezekről többet: LX, Képmanipuláló függvények Referencia

Ezt a lehetőséget lehet használni például egy távoli webszerveren lévő fájlt megnyitására, majd a kívánt adatok kigyűjtésére, vagy arra, hogy csak egyszerűen a saját oldalad kinézetével, stílusával tálald.

Példa 39-1. Egy távoli weboldal címsorának megállapítása

`<?php $file = fopen( "http://www.example.com/", "r" ); if (!$file) { echo "<p>Nem lehet megnyitni a külső file-t!\n"; exit; } while (!feof ($file)) { $line = fgets( $file, 1024 ); /* Ez csak akkor jó, ha a cím és a körbezáró tag-ek egy sorban vannak */ if ( eregi( "<title>(.*)</title>", $line, $out ) ) { $title = $out[1]; break; } } fclose($file); ?>`

Lehetőség van egy FTP szerveren tárolt fájlba írásra is, feltéve, hogy megfelelő jogokkal rendelkező user-ként lépsz be. Ezzel a módszerrel csak új fájlok hozhatók létre, ha már létezik a megadott nevű állomány akkor a fopen() hívása sikertelen lesz. Ha nem 'anonymous' felhasználóként szeretnél belépni, a felhasználói nevet és jelszót az URL részeként kell megadni a alábbi formában: 'ftp://felhasznalo:jelszo@ftp.pelda.hu/eleresi/ut/alma.txt'. (Ugyanezt a módszert használható akkor is, ha olyan állományokat kell elérni HTTP-n keresztül, amelyek a Basic azonosítást igénylik.)

Példa 39-2. Adat tárolása távoli gépen

`<?php $file = fopen( "ftp://ftp.example.com/incoming/outputfile", "w" ); if (!$file) { echo "<p>Nem lehet megnyitni a külső file-t írásra.\n"; exit; } /* Itt írunk a file-ba */ fwrite( $file, "$_SERVER['HTTP_USER_AGENT']\n" ); fclose( $file ); ?>`

> Megjegyzés: A fenti példa alapján talán azt hihetnénk, hogy ilyen technikát kell használni például távoli naplózáshoz. Sajnálatos módon azonban ez nem működik, mert a fopen() hívása sikertelen lesz, ha a távoli állomány már létezik. Az ehhez hasonló elosztott, távoli naplózáshoz a syslog() függvény szolgáltatásait kell igénybe venni.

Előző | Tartalom | Következő
PUT metódusú feltöltések | Fel | Kapcsolatkezelés