PHP – ftp funkcionalnost (ftp funkcije)
Ne davno nazaj smo morali določeno vsebino iz strežnika prenesti na FTP, kjer ni šlo le za copy & paste, ampak tudi za pregled trenutnih datotek na FTP-ju in glede na trenutno stanje dodajanje novih datotek, preprečevanje, da bi kaj pomembnega izbrisali in tako naprej.
Zakaj bi pri tem uporabljali PHP, če imamo toliko FTP client programov, kot so Smart FTP, FlashFXP, Fire FTP itd.? Zato, ker lahko proces popolnoma avtomatiziramo in si s tem prihranimo čas, ki bi ga porabili za vsakodnevno kopiranje vsebin preko FTP clienta.
Sicer mi je bila sama ideja uporabe PHP FTP funkcij za avtomatizacijo procesa všeč, vendar mi je ostalo še nekaj slabega priokusa od takrat, ko sem se prvič seznanil sledečimi funkcijami in zato nisem bil ravno prepričan, če bo stvar 100% delovala.
Za delovanje PHP FTP funkcij potrebuje FTP modul. Več o tem si preberite na PHP spletni strani. Za osnovni wrapper FTP funkcij sem vzel CodeIgniter CI_FTP razred, ker je dovolj preprost, da sem ga lahko hitro prilagodil svojim potrebam (tukaj ciljam predvsem na izpis napak ter neodvisnost razreda od drugih knjižnic) in dovolj zmogljiv, da lahko z njim začnemo takoj izvajati operacije. K osnovni paleti funkcij sem dodal še (večino s pomočjo komentarjev na php.net spletni strani):
- is_dir funkcijo, ki preveri ali je datoteka na FTP-ju direktorij ali ne
- mkdir_recursive, ki kreira celotno pot imenika, naprimer test/imenik1/imenik2.
Pri upload funkciji pa je bilo potrebno dodati še majhne popravek do katerega pride zaradi uporabe absolutne poti na FTP-ju. Prejšna koda:
Trenutna koda:
Pri tem pa je pomembno, da preden dodate datoteko na FTP z uporabo ftp_chdir (changedir v CI_FTP razredu) funkcije usmerite PHP na imenik v katerega bomo dodali datoteko, v nasprotnem primeru vam PHP vrne napako, da datoteke ni bilo moč ustvariti. To pa je v bistvu edina napaka na katero sem doletel pri uporabi PHP FTP funkcij. Vsekakor je bila moja skrb odveč, očitno je bil razlog težav pri prejšnji uporabi teh funkcij moje znanje:).
Primer kako dodati datoteke na FTP strežnik:
-
<?php
-
require_once 'CI_FTP.inc';
-
-
// Get all info needed to connect
-
'hostname' => 'host',
-
'username' => 'user',
-
'password' => 'pass',
-
'debug' => true,
-
);
-
-
// Connect to FTP
-
$ftp = new CI_FTP($config);
-
if ($ftp->connect() === false) {
-
throw new Exception("PHP was not able to connect to {$config['hostname']}");
-
}
-
-
// Loop trough files and transfer them to FTP
-
'test.txt' => 'test/test.txt',
-
);
-
-
foreach($files as $localFilename => $remoteFilename) {
-
// Create dir if doesn't exsists
-
if ($ftp->is_dir($remoteFilename) === false) {
-
}
-
-
// Save file to FTP
-
$ftp->upload($localFilename, $remoteFilename);
-
-
}
-
?>
Dodatne informacije:
- Opis PHP FTP funkcij
- Kratek primer kako dodati datoteko na FTP strežnik s pomočjo PHP-ja
- CodeIgniter seznam FTP funkcij
Datoteke:
Ste tudi vi kdaj uporabili PHP FTP funkcije? Uporabljate kakšen drug razred?
Podobni članki:
- PHP funkcije v Javascript jeziku – isset
- FTP virus – iframe vdor – škodljiva koda – Gumblar FTP virus – fileZilla – Troj/JsRedir-R
- Avtomatska posodobitev PHP skript preko centralne lokacije
- Rezanje teksta po koncu besede – php funkcija – substr – cut text – UTF-8
- PHP – Kreiranje PDF datoteke – DOMPDF – TCPDF
- PHP – Zen Cart – Easy Populate – UTF8 podpora – UTF8 support
- DOMDocument – uporabne funkcije
- Izpis vseh defeniranih spremenljivk v PHP-ju
- PHP – Virtualne pod-domene – virtual subdomains
- Pretvorba PHP MySQL aplikacije v PHP MS SQL aplikacijo (apache, php, mdb2, mysql => iis, php, mdb2, mssql)



November 11th, 2008 ob 11:59 am
To je super funkcija, čeprav za kar bi jo jst uporabil bi jo uporabil za nadgrajevanje (updejtanje) spletnih programov ali za updejtanje strani. Tle se mi zdi najbolj uporabna zadevščina.
November 11th, 2008 ob 12:57 pm
Mesko isto dobra varianta ja.