Hogyan működik a php és ftp

Mikor kell használni az FTP osztály?

Ez a fajta osztály lehet használni számos esetben. Egy pár forgatókönyv lehet:

Automatizálják feltöltési képeket, mint egy galéria, az ügyfél weboldalán (ideális esetben - együtt én tip változtatni a kép méretét);







Hogy a mentést off-site, át a biztonsági adatbázis fájlt a szerverről a másikra. (Megjegyzés: nem ajánlott érzékeny információkat, mert FTP - nem túl biztonságos protokoll).

Megjegyzés: Könnyedén ütközöl nehézségeket, miközben dolgozik a FTP, mivel a különböző szerverek, különböző konfigurációkat. Ezt a kódot sikeresen tesztelték számos FTP szerver.

Mi az FTP?

FTP: „Standard hálózati protokoll másolni egy fájlt egyik fogadó másik.”

FTP, vagy a File Transfer Protocol -, definíció szerint, a Wikipedia: „Standard hálózati protokoll másolni egy fájlt egyik fogadó másik keresztül alapul TCP / IP hálózaton, például az interneten.”

Sőt, ez lehetővé teszi, hogy másolni a fájl (ok) egyik számítógépről a másikra.

Előállítása 1. lépés -

Kezdjük a lehető legegyszerűbb. A gyökere az új projekt létrehozása két fájlt: index.php és ftp_class.php.

Fájl hogy létrehoz egy objektumot, és meghívja a szükséges módszerek - index.php - a fő oldalon. ftp_class.php - ez a mi osztály ftp.

A következő lépésben hozzunk létre egy „csontváz” az osztály. Ha ez kész, akkor képes lesz arra, hogy menjen tovább, és próbálja meg az egyes lépéseket.

Hogyan működik a php és ftp

2. lépés - A osztály

Az erős pontja OOP (objektum-orientált programozás (OOP)), hogy ez adja a komplex a kódot könnyen kezelhető felületen. Létrehozása osztály - fontolja meg a class template - akkor magukba (pecsét) az adatokat, hogy egyszerű szleng szó, egy kifejezés, az adat rejtőzik. Akkor majd használja ezt a class újra és újra anélkül, hogy átírják a kód egy részét újra. Ehelyett csak akkor kell hívni a megfelelő módszerek (a „módszer” - ugyanaz, mint ez a funkció).

Kezdjük létre az FTP-osztályban. Ftp_class.php Nyissa meg a fájlt, és adjuk hozzá a következő kódot. Ez a fő osztály a vázszerkezet, amit az úgynevezett „FTPClient”.

építeni egy jellemző néven kivitelező, egy speciális eljárás, az osztály, akkor automatikusan hívják, amikor létrehoz egy új objektumot, vagy egy példa egy osztály. Általában ez egy remek hely, amely alkalmas a kiegészítéssel, az inicializálás; de a mai célból nem kell. Mindazonáltal fogjuk fel, hogy itt használni a jövőben.

Felhívjuk figyelmét, hogy a konstrukció az általunk használt kettős aláhúzással.

3. lépés - Class változók

Ezután állítsa változókat, vagy osztály tulajdonságait.

„Private” előtag hatályát határozza meg a változó. Ebben az esetben ez azt jelenti, hogy a hozzáférés a külső osztály változó nem sehol.

A változó $ ConnectionID tartalmazni fogja a jelenlegi kapcsolat. A másik két tartalmaznia állapotot és az üzeneteket. $ LoginOk hasznos lesz annak meghatározása, hogy mi rendesen be van kötve.

4. lépés - Írjon egy egyszerű üzenet

Szinte minden módszer hívjuk a módszer neve „logMessage. Ez - a fő üzenet kezelő, amely lehetővé teszi számunkra, hogy összegyűjti az üzeneteket által létrehozott osztály úgy, hogy garantálni tudja a felhasználó választ.

Felhívjuk figyelmét, hogy nem térnek vissza (visszatérítés) ezeket az üzeneteket a saját módszereit. Ehelyett vissza igaz vagy hamis, alapul-e vagy sem a művelet sikeres volt egyedi. Ez megvan a maga előnye, de ezen túlmenően azt részletesen nem, hogy mi történik a felhasználó számára.

Adjuk hozzá a következő két módszer lehetővé teszi, hogy meghatározzák, milyen sikeres volt.

Ez a módszer egy változó $ message. A változó tartalmát ezután tömb tárolja osztály miatt vonal: $ this-> messageArray [] = $ üzenetet;

Mivel $ messageArray - osztály változó, akkor érheti el, hogy egy rekord $ this->.

Mivel az osztályon belül, $ erre utal a tárgy maga.

Hogy ezt az üzenetet, hívjuk getMessages.

Ez a módszer - a szabadban. Mint már említettük, ezek nyitott / zárt esetekben egyszerűen csak utalhat a fellépés a mező vagy változó, ebben az esetben a módszer. A szoros a módszer (vagy változó) nem lehet hozzáférni kívül az osztály, míg a nyitott módszer (vagy változó), a lehető.

Mivel a változó zárt, szükségünk van egy módja annak, hogy hozzáférést. Tesszük ezt rendelésével osztály nyilvános eljárás, amelyre vagyunk, akkor kívülről hozzáférhető az osztályban. Lehet, hogy vajon miért nem csak azt messageArray nyitott változót. lehet; ez csak nem túl jó.

Megjegyzés: A hálózati tele példát rakodók üzenetek színesben, vagy osztály szentelt nekik. Dolgozunk egy egyszerű megvalósítása a célja ennek a bemutató.

5. lépés - Csatlakozás

Ebben a szakaszban, adjuk hozzá a connect módszer. Ez lehetővé teszi számunkra, hogy csatlakozni az FTP szerverre.

Mi szentelt információ: a szerver ($ szerver), felhasználónevet ($ ftpUser) és jelszót ($ ftpPassword) a kapcsolat létrehozásához.

Az első sorban a kód egy kapcsolatot indít egy külön FTP szerver segítségével ftp_connect. Fenntartjuk a kapcsolatot egy osztály változó, $ connectionId, a fent leírtak szerint.
ftp_login kódot írja mi külön kapcsolatot, át a kapcsolat azonosítóját, a felhasználói nevet és jelszót.

Határozza meg, hogy a kapcsolat sikeres volt. Ezután rögzítse az eredményeket, hívja a módszer egy egyszerű üzenet kezelő logMessage (), és adja át a naplósorban. Ne feledje: elérni a logMessage (), akkor a $ this->, mivel ez egy osztály változó.







Hogyan működik a php és ftp

Framework YII2. Gyors fejlődése a modern PHP keretrendszerek

Fedezze fel a modern webes fejlesztési keretet finomságok segítségével YII2

6. lépés - Call objektum

Most, hogy az osztály működik, akkor próbáld ki! Nyissa meg a index.php és adjuk hozzá a következő kódot.

Szükséged lesz elérni az FTP szerverre. Ha szeretné telepíteni a saját szerver, próbálja FileZilla - ez ingyenes.

Látni fogja, hogy én hozzá itt a részleteket az FTP szerver. Ideális esetben lesznek tárolva a konfigurációs fájlban. Megváltoztatni őket telepíteni az FTP.

Meghatározása után a szerver adatait tartalmazza azt a csoportba tartozó (ftp_class.php ');. Ez azt jelenti: hogy az osztály belsejében rendelkezésre ezen az oldalon. A következő sor létrehoz egy FTP objektumot, és tárolja azt a változó $ ftpObj. $ FtpObj most hozzáféréshez használt nyilvános módszerek a mi osztályban. Ezt használja a bejegyzést ->, csak ahogyan azt a következő sort, amelyben az eljárás $ ftpObj -> csatlakozni, és átnyújtotta neki a részleteket a szerver.

Amikor az osztály már a helyén van, akkor könnyű megjegyezni, hogy a kapcsolat az FTP szerver - valóban egy nem-agy!

Az utolsó lépésben tudtunk lezárja a hívásnak az, ha a mondat, az alábbiak szerint. Aztán, ha a kapcsolat nem hozható létre, külön kód nem kerül végrehajtásra. Akkor tudjuk küldeni a felhasználó néhány üzenetet, mint például „a kapcsolat létrejötte» ( »csatlakoztatva«), vagy „létrehozni egy csatlakozás sikertelen» ( »hibás«).

Kiderült, rendben van, bár a kód meglehetősen gyorsan dagad a javaslatok if / else, ha ehhez hozzátesszük, hogy minden kihívás. Ehelyett azt javasoljuk, egy alternatív, amelyek megkönnyítik a munka folytatásához, és a kód tisztább.

Emlékezz adtunk módszerek üzenetkezelő? Ha azt szeretnénk, hogy hozzászólását osztály - hasznos hibakeresés és a válasz -, akkor adjuk hozzá a következő kódot után minden hívónak.

Ez egy üzenetet jelenít osztályban.

7. lépés - Tedd meg első könyvtár

Nos, itt az ideje, hogy tegyünk valamit hasznos. Az első módszer, hogy fogunk létrehozni, akkor makeDirmethod. Ahogy az várható volt, ez létre fog hozni számunkra a címtárkiszolgálót. Az egyetlen lehetőség, hogy adunk - az az út, és a könyvtár neve a mappa; nevezzük $ könyvtárba. Mágikus vonal itt a funkció ftp_mkdirbuilt-ben. Ahhoz, hogy hozzon létre egy mappát, akkor használja a mentett „connectionId”, és adja át a változó $ könyvtárba.

Adjuk hozzá a ftp_class.php fájlt a következő kódot:

A változó $ dir van beállítva, hogy a nevét, a mappát kell létrehozni a szerveren. Ebben az esetben „a fotó» ( »képek«). A következő sorban felhívja a módszer, amely létrehozza a mappát.

Ha ön kap a hiba üzenet „nincs hozzáférési jog» ( »Permission denied«), ellenőrizze, hogy írhat a megadott mappába. Lehet, hogy hozzon létre egy mappát a mappán belül, mint például / httpdocs.

8. lépés - Fájl feltöltése

A munka folytatásához, nézzük kirak fotó címmel zoe.jpg. Amikor egy fájl feltöltésével, akkor meg kell állapítanunk, hogy hogyan dolgozunk a fájltípust - bináris vagy ASCII? Alapjában véve, mikor egy szöveges fájl feltöltésével, akkor használja az ASCII; különben meg kell állítani a bináris.

Kezdjük létrehozásával egy tömb összes bővítmény fogják használni, hogy kirak az ASCII típusú.

Ezután visszatér az bővítjük fájlt, hogy ki lehet próbálni, hogy ha ez tartozik az ASCII típusú. Mi határozza meg ezt a szerzés oldalas fájl kiterjesztését. Egy egyszerű és gyors módszer által használt, ide - „kitermelése” fájlt az elválasztó „”. Mivel a fájl tördelték és tárolni tömbben. Alkalmazott egyéb beépített PHP-függvény, „vége”, úgy döntünk, az utolsó tömb elem, amely a terjeszkedés. Ez egy nagyon ügyes kis kódrészletet.

Ezután azt tesztelni, hogy a terjeszkedés szerepel a listán (az in_array) kiterjesztésű fájlokat, amelyeket figyelembe kell rakodni a fajta ascii. Ha ez jelenik meg a listában, állítsa a változó $ módban FTP_ASCII; különben arra a következtetésre jutunk, hogy az ilyen típusú bináris és értéket rendelhet $ mode FTP_BINARY.

ftp_put eltávolítja a fájlt a helyéről egy távoli fájl az FTP szerveren. Adtunk neki „connectionId”, a fájl elérési útvonalát, hogy meg kell eltávolítani ($ fileTo), a fájl elérési útját, hogy a feltölteni kívánt ($ fileFrom) és mód ($ mode), amely az imént definiált.

Hogyan működik a php és ftp

Ezután adjuk hozzá a következő módszerrel ftp_class.php file:

Persze, akkor hozzon létre vagy feltölteni mappanevekhez saját belátása szerint! Adjuk hozzá a index.php az alábbi kódot, és azt megfelelően módosítani.

Ezen a ponton meg kell szokni, hogy mennyire könnyű használni ezt az osztályt! Mi csak csinál valami kihívások teljesítsék feladataikat - és az összes köszönhetően objektum-orientált programozás!

Nézzük most megerősítette, hogy a fájl a mappában a képeket. Ez úgy valósítható meg, megy a mappát „fotó” a szerveren, majd mutatja a tartalmát.

changeDir módszer „ftp_chdir” megváltoztatni a jelenlegi könyvtárat az FTP szerveren. csak át, hogy módosítsa a könyvtárat. Könnyű és egyszerű.

getDirListing mutatja a tartalmát a könyvtárat, amelyben az Ön által használt „ftp_nlist” funkciót. Ez ad egy listát a fájlokat a megadott könyvtárba. Az aktuális könyvtár alapértelmezés szerint, így nem kell megadnia semmilyen paramétert.

getDirListing módszer visszaadja egy tömb, amely a lista a könyvtárban.

Az eredmény a következőképpen néz ki:

Hogyan működik a php és ftp

10. lépés - feltöltött fájl

Ahogy közeledünk a vége a tutorial, viszont a fájlok letöltése. Az eljárás azzal kezdődik, hogy ugyanazt a kódot, uploadfile, amely meghatározza, hogy a fájl, amit le kell tölteni, ASCII vagy bináris.

Ebben az eljárásban, akkor egyszerűen át a fájl nevét (és esetleg az utat, attól függően, hogy ugyanabban a könyvtárban, mint a kívánt fájlt letölteni) feltölteni kívánt, és a nevét, hogy szeretne rendelni a fájlt a az ügyfél.

A fájl letöltéséhez meg kell hívni ftp_get.

Szóval le fájlokat egy távoli szerver beállítása a helyi gépen. Elveszi a következő paramétereket: id a mi kapcsolat, az út vagy a fájl neve annak a helyi tároló (újra kell írni, ha létezik ilyen) ($ fileTo), helyét és a fájl nevét egy távoli szerveren ($ fileFrom) és mód ($ mode).

Megyünk letölteni a fájlt amit feltöltöttem, mentés más néven a kliens gépen.

Megjegyzés: Ismét ellenőrizze, hogy a jogosultságok vannak-e beállítva!

Mert most kell lennie a mappát a fényképek, ne add az utat a változó $ fileFrom - csak a fájl nevét.

11. lépés - Befejezés

Befejezni teljesen az ő osztálya, adjunk eljárás osztályú mágikus módszer, __deconstruct. Ez a módszer bezárja a kapcsolatot, ha egy objektum referencia már nincs ott - talán az oldalt lezárták. Mindenesetre, ez a kód, és a kapcsolat le van zárva. Ez így van - tartalmazza azt, bár ez nem kötelező.

következtetés

Nos, ez az egész! Remélem, most, hogy jobban megértsük, hogyan kell használni az FTP segítségével PHP. Most már a szükséges készségeket, hogy további bővítése ennek az osztálynak, hogy támogassa más egyszerű feladatok, mint például átnevezés vagy törlése fájlok és mappák.

Ne habozzon, hogy tudassa velünk, ha létrehoz néhány nagyszerű PHP FTP kliens!

Szerkesztőség: Victor Horn és Andrew Bernátsky. webformyself csapat.

Hogyan működik a php és ftp

Framework YII2. Gyors fejlődése a modern PHP keretrendszerek

Fedezze fel a modern webes fejlesztési keretet finomságok segítségével YII2

A legtöbb IT hírek és webfejlesztés A csatorna-távirat




Kapcsolódó cikkek