أهلا وسهلا بك زائرنا الكريم في JO1R FORUM | منتديات شباب و صبايا الأردن، لكي تتمكن من المشاركة ومشاهدة جميع أقسام المنتدى وكافة الميزات ، يجب عليك إنشاء حساب جديد بالتسجيل بالضغط هنا أو تسجيل الدخول اضغط هنا إذا كنت عضواً .

< كلاس > كلاس FTP

السلام عليكم ورحمة الله تعالى وبركاته , قضى بي الجلوس امام الحاسوب الى كتابة كلاس للتعامل مع FTP بطريقة Logs كبرامج FTP لكن كموقع , حيث يمكنك تسخيره



27-06-2011 12:10 مساءً
معلومات الكاتب ▼
تاريخ الإنضمام : 16-07-2007
رقم العضوية : 46
المشاركات : 1,315
الجنس :
قوة السمعة : 429,537,324
السلام عليكم ورحمة الله تعالى وبركاته ,
قضى بي الجلوس امام الحاسوب الى كتابة كلاس للتعامل مع FTP بطريقة Logs
كبرامج FTP لكن كموقع , حيث يمكنك تسخيره و مع بعض التقنيات الحديثة تحويله الى CLoud App يستعمل في Web Os

المهم ما علينا , الان
الكلاس
رمز PHP:
server = $server;
$this->ftp_stream = ftp_connect($server);
$login = ftp_login($this->ftp_stream,$user,$pass);
ftp_pasv($this->ftp_stream,$isPassive);
if(!
$this->ftp_stream or !$login){
$this->log_message("Impossible de se connecter au serveur $server");
}else{
$this->log_message(Connected to . $server . , for user . $user );
$this->login = true;
}
}

/*
* Retourne un identifiant de type de serveur FTP
*/
public function system_type(){
$type = ftp_systype($this->ftp_stream);
if(
$type){
$this->log_message("$this->server exécuté par $type");
return
true;
}else{
$this->log_message("Impossible de récupérer le type du serveur");
return
false;
}
}


/*
* log a message
* @param : String message
*/
private function log_message($message){
array_push($this->messages,utf8_decode($message));
}

/*
* get all log messages
* @return : Array messages
*/
public function get_messages(){
return
$this->messages;
}

/*
* get the extension of file
* @param : String file name
* @return : String file extension
*/
private function get_extension($file){



if(
function_exists("pathinfo")){
$ext = pathinfo($file,PATHINFO_EXTENSION);
}else{
$ext = end(explode(".",$file));
}
return
strtolower(trim($ext));
}

/*
* make a directory
* @param : String dir name
*/
public function make_dir($dir){
if(!
ftp_chdir($this->ftp_stream,$dir)){
$this->log_message("Le dossier $dir est déja exists");
return
false;
}else{
$make = ftp_mkdir($this->ftp_stream,$dir);
if(
$make){
$this->log_message("Le dossier $dir a été créé avec succès");
return
true;
}else{
$this->log_message("Il y a eu un problème lors de la création du dossier $dir");
return
false;
}
}
}

/*
* change current directory
* @param :String dir name
*/
public function change_dir($dir){
$changedir = ftp_chdir($this->ftp_stream,$dir);
if(
$changedir){
$this->log_message("Le dossier courant est maintenant : " . ftp_pwd($this->ftp_stream));
return
true;
}else{
$this->log_message("Impossible de changer de dossier");
return
false;
}
}

/*
* remove a directory
* @param: string dir name
*/
public function remove_dir($dir){
$remove_dir = ftp_rmdir($this->ftp_stream,$dir);
if(
$remove_dir){
$this->log_message("Le dossier $dir a été effacé avec succès");
return
true;
}else{
$this->log_message("Il y a eu un problème lors de leffacement du dossier $dir");
return
false;
}
}

/*
* current dir
*/
public function current_dir(){
$current = ftp_pwd($this->ftp_stream);
if(
$current){
$this->log_message("Current dossier $current");
return
true;
}else{
$this->log_message("Il y a eu un problème lors de get current dossier");
return
false;
}
}

/*
* Change de dossier et passe au dossier parent
*/
public function parent_dir(){
$parent = ftp_cdup($this->ftp_stream);
if(
$parent){
$this->log_message("Current dossier ".ftp_pwd($this->ftp_stream));
return
true;
}else{
$this->log_message("Il y a eu un problème lors de get current dossier");
return
false;
}
}


/*
* Retourne la liste des fichiers dun dossier
* @param : String Le dossier à lister
* @param : String des arguments
*/
public function get_dir_list($dir=".",$parametrs= "-la"){
$dirs = ftp_nlist($this->ftp_stream,$parametrs." ".$dir);
return
$dirs;
}

/*
* Renomme un fichier sur un serveur FTP
* @param :String Lancien nom du dossier / fichier.
* @param :String Le nouveau nom.
*/
public function rename($oldName,$newName){
$rename = ftp_rename($this->ftp_stream,$oldName,$newName);
if(
$rename){
$this->log_message("Renommage avec succès de $oldName en $newName");
return
true;
}else{
$this->log_message("Il y a eu un problème lors du renommage de $oldName en $newName");
return
false;
}
}

/*
* Retourne la date de dernière modification dun fichier sur un serveur FTP
* @param : String Le fichier depuis lequel on doit extraire la date de dernière modification.
*/
function filemtime($file){
$filemtime = ftp_mdtm($this->ftp_stream);
if(
$filemtime != -1){
$this->log_message("$file a été modifié pour la dernière fois : " . date("F d Y H:i:s.", $filemtime));
return
true;
}else{
$this->log_message("Impossible de récupérer mdtime");
return
false;
}
}


/*
* retourne la taille dun fichier donné en octets.
* @param : String Le fichier distant.
*/
public function file_size($file){
$size = ftp_size($this->ftp_stream, $file);
if (
$size != -1) {
$this->log_message("La taille du fichier $file est de $size octets");
return
true;
} else {
$this->log_message("Impossible de récupérer la taille du fichier");
return
false;
}
}

/*
* efface le fichier sur un serveur FTP
* @param : String Le fichier à effacer.
*/
public function delete_file($file){
$delete = ftp_delete($this->ftp_stream,$file);
if (
$delete) {
$this->log_message("$file effacé avec succès");
return
true;
} else {
$this->log_message("Impossible deffacer le fichier $file");
return
false;
}
}


/*
* change le chmod de file
* @param : String Le fichier distant.
* @param : Int La nouvelle permission, donnée en tant que valeur octale.
*/
public function chmod_file($file,$mode){
$chmod = ftp_chmod($this->ftp_stream,$mode,$file);
if(
$chmod !== false){
$this->log_message("Les permissions du fichier $file ont été modifiées avec succès en $mode");
} else {
$this->log_message("Impossible de modifier les permissions du fichier $file");
}
}

/*
* download a file from ftp
* @Param : Le chemin vers le fichier local
* @param : Le chemin vers le fichier distant.
*/
public function download_file($fileFrom,$FileTo){
$extension = $this->get_extension($fileFrom);
if(
in_array($extension,$this->ascii_extensions)){
$mode = FTP_ASCII;
}else{
$mode = FTP_BINARY;
}
$download = ftp_get($this->ftp_stream,$FileTo,$fileFrom,$mode,0);
if(
$download){
$this->log_message("Le fichier $FileTo a été écris avec succès");
return
true;
}else{
$this->log_message("Il y a un problème dans le download de $FileTo");
return
false;
}
}
/*
* upload a file to ftp
* @param : String Le chemin vers le fichier distant.
* @param : String Le chemin vers le fichier local.
*/
public function upload_file($fileFrom,$FileTo){
$extension = $this->get_extension($fileFrom);
if(
in_array($extension,$this->ascii_extensions)){
$mode = FTP_ASCII;
}else{
$mode = FTP_BINARY;
}
$upload = ftp_put($this->ftp_stream,$fileTo,$fileFrom,$mode);
if(!
$upload){
$this->log_message("FTP upload of $fileTo has failed!");
return
false;
}else{
$this->log_message("Uploaded $fileFrom to $this->ftp_stream as $fileTo");
return
true;
}
}


public function
__destruct(){
if(
$this->ftp_stream){
if(
function_exists("ftp_close")){
$quit = ftp_close($this->ftp_stream);
}else{
$quit = ftp_quit($this->ftp_stream);
}
if(
$quit){
$this->log_message("FTP deconnection success");
return
true;
}else{
$this->log_message("FTP deconnection has failed");
return
false;
}
}
}
}
?>

طريقة الاستخدام
رمز PHP:
$ftp = new ftp("ftp.،،،،،،،،،","،،،،_8378869","root12");

اتصال بالسيرفر ,
لمعرفة النظام المستخدم في سيرفر FTP
رمز PHP:
$ftp->system_type();

طبعا كل شيئ , يتم في logs و سنتعرف كيفية عرض النتائج
للانتقال الىى مجلد معين
رمز PHP:
$ftp->change_dir("blog");

للانتقال الى المجلد الاب
رمز PHP:
$ftp->parent_dir();

لانشاء مجلد
رمز PHP:
$ftp->make_dir("test");

لحذف مجلد
رمز PHP:
$ftp->remove_dir("blog");

لرفع ملف
رمز PHP:

$ftp
->upload_file("test.php","test/test.php");

لجلب حجم الملف
رمز PHP:
$ftp->file_size("test.php");

اخر تعديل للملف
رمز PHP:

$ftp
->filemtime("test.php");

تحميل الملف
رمز PHP:

$ftp
->download_file("test.php","test.php");

تغيير تصريح ملف معين
[php]
$ftp->chmod_file("test.php",0777);
[php]
حذف ملف
رمز PHP:
$ftp->delete_file("test.php");

لتغييير اسم ملف او مجلد
رمز PHP:
$ftp->rename("test","w3a");

جلب , ما يوجد في مجلد معين
رمز PHP:
print_r($ftp->get_dir_list("test/"));

لمعرفة المجلد الحالي
رمز PHP:
$ftp->current_dir();

لعرض logs
رمز PHP:
print_r($ftp->get_messages());

مثال لل logs
اقتباس:
Array
(
[0] => Connected to ftp.،،،،،،،،،, for user ،،،،_8378869
[1] => ftp.،،،،،،،،، exécuté par UNIX
[2] => Le dossier courant est maintenant : /blog
[3] => Current dossier /
[4] => Le dossier test est déja exists
[5] => Le dossier blog a été effacé avec succès
[6] => FTP upload of has failed!
[7] => Impossible de changer de dossier
[8] => Impossible de récupérer la taille du fichier
[9] => test.php a été modifié pour la dernière fois : January 01 1970 00:00:00.
[10] => Il y a un problème dans le download de test.php
)
توقيع :OMRAN
ohgod

اضافة رد جديد اضافة موضوع جديد



المواضيع المتشابهه
عنوان الموضوع الكاتب الردود الزوار آخر رد
سيارات كلاسيك مصنوع من علب كوكاكولا / صور : فارس بواسطة امير النور
0 67 امير النور
[مجله] : حصريا مجلة ايجي كلاسيك نسخه اصليه وبدون حقوق امير النور
1 309 امير النور
كلاسيكيات-أجمل معزوفات -بيانو- Best of Best - Classical Piano Music JO1R
8 533 noor ameen
نقاش الكلاسيكو ...؟! مايك
41 715 محمد النجار 2011
نغمة كلاسيكية رومانسية هادئة ومميزة على الجيتار TONES LOVE
0 106 TONES LOVE

الكلمات الدلالية
لا يوجد كلمات دلالية ..









الساعة الآن 08:38 AM