Dnes si ukážeme, jak si v PHP vytvořit program, který nám
zobrazí obsah FTP serveru
Začneme tím, že si řekneme, co vlastně bude náš program
dělat.
Připojení k serveru - funkce ftp_connect($server ,$port);
Přihlášení k serveru - funkce ftp_login($spojeni, $login,
$heslo);
Výpis aktuálního adresáře - funkce ftp_nlist($spojeni,
$adresář);
Přechod do jiného adresáře - funkce ftp_chdir($spojeni,
$adresář);
Možnost přejít do kořenového adresáře - funkce
ftp_cdup($spojeni);
Nyní podrobnější popis jednotlivých funkcí:
ftp_connect($server ,$port) - naváže spojení se severem $server,
který běží na portu $port. Pokud port vynecháte, použije se
automaticky port 23. Pokud proběhne připojení úspěšně, vrací funkce
číslo spojení, pokud ne, vrací false.
ftp_login($spojeni, $login, $heslo) - jsme sice připojeni, ale
nejse přihlášeni. K tomu slouží tato funkce. Abyste mohli tuto
funkci používat, musíte mít otevřené spojení (k tomu slouží předešlá
funkce). $login je přihlašovací jméno, pokud na serveru nemáte
zřízen účet, používá se jako login 'anonymous'. A samozřejmě $heslo
je heslo patřící k účtu, pokud nemáte účet, uvádí se e-mailová
adresa. Pokud funkce neproběhne úspěšně, vrací false.
ftp_nlist($spojeni, $adresář) - vrací pole, kde platí, že každá
položka se rovná jednomu souboru v adresáři. Pokud nastane za běhu
chyba, vrací funkce false
ftp_chdir($spojeni, $adresář) - nastaví aktuální adresář na
$adresář, za kterého posléze můžeme vypsat soubory. Pokud nastane
chyba, vrací funkce false.
ftp_cdup($spojeni) - přesune spojení do kořenového adresáře
serveru. Pokud přechod neproběhne v pořádku, vrací funkce
false
Takže když už známe potřebné funkce, můžeme se přesunout k
samotnému programu. Naše aplikace se bude skládat ze dvou souborů
(index.php a server.php). V souboru index.php bude přihlašovací
formulář. Soubor server.php bude již obsluhovat práci se serverem.
Nejdříve soubor index.php, ten bude obsahovat formulář, ve kterém
budou tři textová políčka, které se budou jmenovat server, login a
heslo. Nyní zdrojový kód:
<form action="server.php"
method=post> <table> <tr><td>Server<td><input
name=server>Pokud není port 23 uvádějte ho za
':'(ftp.neco.cz:port) <tr><td>Login<td><input
name=login> <tr><td>Heslo<td><input
name=heslo type=password> </table> <input
type=submit
value=Přihlásit> </form>
Nyní popis souboru server.php.
Nejdříve pomocí funkce set_time_limit(0); nastavíme časový limit
scriptu na nekonečno, protože by výpis některých adresářů mohl být
časově velice náročný.
Poté rozdělíme proměnou $server na proměnné $server a $port.
Dále se připojíme k serveru, který jsme získali v minulém kroku.
K serveru se přihlásíme.
Pokud byla zaslána proměnná $dir, potom změň aktuální cestu na
cestu v proměnné $dir.
Pokud byla zaslána proměnná $root, potom jdi do kořenového
adresáře.
Získáme cestu k adresáři, ve kterém se nacházíme (navždy je
uložena v proměnné $dir).
Zjistíme rodičovský adresář z adresy adresáře, ve kterém se
nacházíme.
Vypíšeme obsah adresáře:
Pokud je ve jménu '.'(tečka), poté zacházíme s objektem jako se
souborem.
Pokud ve jménu '.'(tečka) není, poté zacházíme s objektem jako s
adresářem.
A to je vše!!!!
Zde předkládám zdrojový kód na vyzkoušení
<? set_time_limit(0); //Přístupové
informace $connect = explode(":",$server); $server =
$connect[0]; $port = $connect[1]; //Připojení k
serveru $conn = ftp_connect($server
,$port); if(!$conn): die("Nelze se
připojit!!!"); endif; //Přihlášení k serveru $user =
ftp_login($conn, $login, $heslo); if(!$user): die("Nelze
se
přihlásit!!!"); endif;