Zacznijmy kurs

Korzystanie ze zdalnych plików

Rozdział 39. Korzystanie ze zdalnych plików

Jeśli parametr allow_url_fopen w pliku php.ini zostanie włączony, będzie można używać adresów HTTP i FTP w większości funkcji, które jako parametr przyjmują nazwę pliku, włączając w to instrukcje include(), include_once(), require() oraz require_once(). Więcej informacji o protokołach obsługiwanych przez PHP. znajduje się w Dodatek M.

Notatka: PHP dla Windows, w wersji wcześniejszej niż 4.3 nie obsługiwało zdalnego dostępu do plików przy użyciu instrukcji: include(), include_once(), require() i require_once() oraz rodziny funkcji imagecreatefromXXX z rozszerzenia Materiały źródłowe LXIII, Image Functions.

Możesz wykorzystać tę własność aby otworzyć plik na zdalnym serwrze, przetworzyć jego zawartość i użyć wyników w zapytaniu do bazy danych, lub po prostu wyświetlić plik dostosowując jego wygląd do swojej strony.

Przykład 39-1. Pobieranie tytułu zdalnej strony

<?php
$file
= fopen ("http://www.example.com/", "r");
if (!
$file) {
    echo
"<p>Nie można otworzyć zdalnego pliku.\n";
    exit;
}
while (!
feof ($file)) {
    
$line = fgets ($file, 1024);
    
/* Zadziała tylko wtedy, gdy tytuł i jego znaczniki są w tej samej linii */
    
if (eregi ("<title>(.*)</title>", $line, $out)) {
        
$title = $out[1];
        break;
    }
}
fclose($file);
?>

Możesz również zapisywać pliki na serwerach FTP (zakładając, że połączyłeś się jako użytkownik z odpowiednimi prawami dostepu). Przy użyciu tej metody możesz jedynie tworzyć nowe pliki. Jeśli spróbujesz nadpisać istniejący plik, wywołanie funkcji fopen() zwróci błąd.

Przykład 39-2. Zapisywanie danych na zdalnym serwerze.

<?php
$file
= fopen ("ftp://ftp.example.com/incoming/outputfile", "w");
if (!
$file) {
    echo
"<p>Nie można otworzyć zdalnego pliku do zapisu.\n";
    exit;
}
/* Tutaj zapisujemy dane. */
fwrite ($file, $_SERVER['HTTP_USER_AGENT'] . "\n");
fclose ($file);
?>

Notatka: Być może powyższy przykład nasunął ci pomysł, by użyć tej metody do zdalnego zapisywania logów. Niestety taka próba się nie powiedzie, gdyż wywołanie fopen() zwróci błąd, jeśli zdalny plik już istnieje. Aby zrealizować zdalne logowanie powinieneś przyjrzeć się funkcji syslog().


mario download

WÄ…tki z forum o php

Najnowsze posty naszych userów

Samsung 640 GB 7200rpm SATA2 16MB CACHE (HD642JJ)
Witam
chce kupiæ nowy dodatkowy dysk

o taki
Samsung 640 GB 7200rpm SATA2 16MB CACHE (HD642JJ) co o nim s±dzicie? warto?

mam pytanie co mam jeszcze kupiæ oraz gdzie podpi±æ napiêcie

oto screen




pozdrawiam
Jak skróciæ utwór muzyczny np. z 3 min do 30s.
Witam,
S³uchaj±c muzykê w Windows Media Player zastanawiam sie jak skróciæ utwór mu¿yczny do potrzebnej mi d³ugo¶ci.
Mo¿e kto¶ podpowie jak to zrobiæ.
Pozdrawiam,
Kontroler obrotów
Mam ch³odzenie Pentagram Alpaya AM2 S775, do ch³odzenia by³ do³±czony kontroler obrotów, lecz ten nie chce dzia³aæ...
Gdy pod³±cze wentylator odrazu do p³yty to krêci siê, ale strasznie g³o¶no, a gdy pod³±cze do niego kontroler obrotów to wogóle siê nie krêci. Co mo¿e byæ nie tak?


Problemem bylo to, ze autor nie pozostawil mozliwosci zmian, wiec za pomoca programu PHP WebPage Editor zmienilem pewne potrzebne mi wartosci (ilosci wojsk - to akurat bylo latwe do znalezienia...), ale nie wiem, ktore wartosci odpowiadaja za czas wysylania tych jednostek wojska - chce zmienic z tych kilkunastu sekud na ok 1,5 godz... (to dziwne, bo nie jest to regularne - niektore ataki wychodza co 10 sek, niektore co 15 albo 20.