iReklama  |  PC Svět  |  vyhledávací centrála  |  Diskuzní fórum  |  WWW katalog  |  Guestbook  |  MailForm  |  kontakt: pcsvet@pcsvet.cz - čte si nás 7 čtenářů
 
PC Svět
Hlavní stránka
ASP
Aktuality
Assembler
C,C++
Delphi
Diskuze
Grafika
Hacking
Hardware
Hry a zábava
HTML
Internet
JavaScript
Komunikace
Linux
Microsoft Office
Turbo Pascal
PHP
Software
Tiskové zprávy
Visual Basic
Windows
WWW katalog

Knihovna zdr. kódů

Nabídka skriptů aj.

Homepage autora
Služby
Guestbook
  kniha návštěv pro
  každého
MailForm
  zasílání výsledků
  formulářů na e-mail
Programy
DOS Commander
WinMan
Windows Tools
Informace
O PC Světě
Přehled rubrik
Reklama
Výsledky anket
Přehled novinek


šéfredaktor
Petr Šťastný
admin@pcsvet.cz

zástupce šéfredaktora
Pavel Rauš
raus@pcsvet.cz

Stránka je optimalizo-
vána pro prohlížeč
Internet Explorer 5.0
při rozlišení 800x600

 © Petr Šťastný 2001
   All rights reserved

PC Svět
ikonka PC Světa


Linux - zdarma a legálně
TOPlist

Jednoduchý FTP klient v PHP
Vytisknout   Poslat   Komentáře (2)   Přidat komentář

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:

    Server Pokud není port 23 uvádějte ho za ':'(ftp.neco.cz:port)
    Login
    Heslo
    <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;

    if(isset($dir)):
    ftp_chdir($conn, $dir);
    endif;
    if($root == ".."):
    ftp_cdup($conn);
    endif;
    ?>
    <html>
    <body bgcolor=edded>
    <?
    $dir = ftp_pwd($conn);
    $url = explode("/",$dir);
    $kolik = count($url) - 1;
    for($a=1;$a <> $kolik;$a++){
    $adr .= "/".$url[$a];
    }
    Echo $dir."<br>";
    Echo "<a href=server.php?server=$server&login=$login&heslo=$heslo&root=..><b>/</b></a><br>";
    Echo "<a href=server.php?server=$server&login=$login&heslo=$heslo&dir=$adr><b>..</b></a><br>";
    $files = ftp_nlist($conn, $dir);
    for($a=0;$a <> count($files);$a++){
    if(strpos($files[$a],".")):
    Echo "<a href=ftp://$server".$files[$a].">".$files[$a]."</a><br>";
    else:
    Echo "<a href=server.php?server=$server&login=$login&heslo=$heslo&dir=".$files[$a].">".$files[$a]."</a><br>";
    endif;
    }
    ?>
    </body>
    </html>

    To je pro dnešek vše, příště Vám ukážu, jak 'natahovat' soubory na FTP servery.
    P.S: Zde si můžete stáhnou kompletní zdrojové kódy.

    Autor: Marek Jelen, marek.jelen@mybox.cz, informace a seznam článků


    Komentáře k článku
    Mala chybicka, Pavel Rauš, 12.9.2001 5:16:41
    Re: Mala chybicka, Marek Jelen, 12.9.2001 7:24:41

    Přidat komentář


    Poslední články ze stejné rubriky
    PHP: Odeslání libovolného formuláře e-mailem (3.)
    PHP: Odeslání e-mailu ve formátu HTML
    PHP: Katalog stránek (2.)
    PHP: Katalog stránek (1.)
    PHP - diskuze (2.)

    Diskuze - PHP - celkem 293 příspěvků (zobrazeno max. 15) - zobrazit celou diskuzi
    Podkategorie
    Databáze [43]
    Název Autor Datum
    Ako poslať dáta formulára? Kecso 26.09.2001
       žádná odpověď    
    V Zozo 12.09.2001
    • Chyba kódování v MySQL stefan 14.09.2001
    Jak mám zaokrouhlit??? Martin 11.09.2001
    • round Wiki 12.09.2001
    Blob data z MySQL Krasty 09.09.2001
    • Re: Blob data z MySQL Petr Šťastný 09.09.2001
    • Blob data z MySQL Krasty 11.09.2001
    • RE : Blob data z MySQL stefan 14.09.2001
    • Blob data z MySQL Krasty 15.09.2001
    SORT Roman 07.09.2001
    • Sort Wiki 07.09.2001
    • Sort Wiki 07.09.2001
    RE : MySQL a Grafické ovládání Kamil 03.09.2001
       žádná odpověď    
    MySQL a Grafické ovládání Michal 02.09.2001
       žádná odpověď    
  • Provozovatel:
    PES.cz
    Poslední články
    Acer Veriton 7200 - počítač pro náročné
    OSI Model
    Základy 2D grafiky - kružnice a elipsa
    Microsoft Combat Flight Simulator 2: WWII Pacific Theater
    Zákazníci Telecomu jsou chráněni před vysokým účtem za telefon
    Hodnocení článku
    nejlepší <----> nejhorší
        
    Zatím nehodnoceno
    Informace o článku
    Datum 10.9.2001
    Čtenářů 990
    Autor Marek Jelen
    Rubrika PHP - příklady
    Nový redaktor
      Chcete psát články
      pro PC Svět či se
      stát redaktorem?

    Články honorovány!

      Informace zde
    EInfo
      Chcete být informováni
      o každém novém článku
      na PC Světě?

    Zadejte svůj e-mail:

    MSN.ATLAS.CZ
    Hladat.sk

    hlavní stránka  |  vyhledávací centrála  |  Diskuze  |  WWW katalog  |  Guestbook  |  MailForm  |  kontakt: pcsvet@pcsvet.cz

    Se svými dotazy či problémy se obracejte na diskuzní fórum, věci týkající se PC Světa směřujte na e-mail pcsvet@pcsvet.cz

    Šíření obsahu tohoto serveru nebo jeho části je bez souhlasu redakce zakázáno.
    (c) PC Svět 2001 - Všechna práva vyhrazena.