Rozdzia│ 19. U┐ywanie zdalnych plik≤w
Je╢li PHP pracuje ze wsparciem dla "URL fopen wrapper" (otwarcie zdalnego pliku na podstawie URL, co mo┐na wy│▒czyµ opcj▒ --disable-url-fopen-wrapper), mo┐esz u┐ywaµ URL HTTP oraz FTP z wiΩkszo╢ci▒ funkcji kt≤re pobieraj▒ nazwΩ pliku jako parametr, w│▒cznie z funkcjami require() i include().
Uwaga: Nie mo┐esz u┐ywaµ zdalnych plik≤w w dyrektywach include() oraz require() na systemie M$ Windows.
Mo┐esz na przyk│ad otworzyµ plik na zdalnym serwerze www, wykonaµ operacje na tym pliku, a ich wynik u┐yµ dla zapytania do bazy danych lub wy╢wietliµ na w│asnej stronie z kt≤rej wywo│a│e╢ skrypt.
Przyk│ad 19-1. Pobranie tytu│u zdalnej strony
<?php
$file = fopen("http://www.php.net/", "r");
if (!$file) {
echo "<p>Nie mogΩ otworzyµ zdalnego pliku.\n";
exit;
}
while (!feof($file)) {
$line = fgets($file, 1024);
/* Dzia│a je╢li tytu│ i jego tagi s▒ w jednej linii. */
if (eregi("<title>(.*)</title>", $line, $out)) {
$title = $out[1];
break;
}
}
fclose($file);
?>
|
Mo┐esz zapisywaµ dane do pliku umieszczonego na serwerze FTP je╢li masz odpowiednie prawa. Aby po│▒czyµ siΩ jako u┐ytkownik inny ni┐ 'anonymous', musisz podaµ username (i prawdopodobnie has│o) w wywo│ywanym URL w stylu 'ftp://user:password@ftp.example.com/path/to/file'. (U┐yj tej samej sk│adni dla plik≤w HTTP kt≤re wymagaj▒ autentykacji Basic.)
Przyk│ad 19-2. Zapisywanie danych na zdalnym serwerze.
<?php
$file = fopen("ftp://ftp.php.net/incoming/outputfile", "w");
if (!$file) {
echo "<p>Nie mogΩ otworzyµ zdalnego pliku dla zapisu.\n";
exit;
}
/* Tu zapisz dane. */
fputs($file, "$HTTP_USER_AGENT\n");
fclose($file);
?>
|
Uwaga: Powy┐szy przyk│ad mo┐e s│u┐yµ jako technika zapisu zdalnych log≤w, jednak pamiΩtaj, ┐e u┐ywaj▒c URL fopen() mo┐esz zapisywaµ tylko do nowotworzonych plik≤w. Aby tworzyc logi zapoznaj siΩ z funkcj▒ syslog().
|