#1
|
||||
|
||||
![]()
السلام عليكم ورحمة الله تعالى وبركاته ,
قضى بي الجلوس امام الحاسوب الى كتابة كلاس للتعامل مع 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 l'effacement 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 d'un 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 L'ancien 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 d'un 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 d'un 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 d'effacer 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.eb2a.com","eb2a_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 اقتباس: [align=left] Array ( [0] => Connected to ftp.eb2a.com, for user eb2a_8378869 [1] => ftp.eb2a.com 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 ) [/align] أكثر... |
مواقع النشر (المفضلة) |
|
|
![]() |
||||
الموضوع | كاتب الموضوع | المنتدى | مشاركات | آخر مشاركة |
[ تبادل اعلاني ] : دليل كلاش: نصي مع آي موقع vip8000.com | RSS | Arabic Rss | 0 | 06-15-2011 01:30 PM |
مطلوب سكربت دسكفري لموقع بنات كلاس www.c1ass.com | RSS | Arabic Rss | 0 | 06-14-2011 03:17 AM |
طريقة فتح كلاس اي بي؟ | RSS | Arabic Rss | 0 | 06-09-2011 08:45 AM |
مطلوب سكربت يوتيوب لموقع بنات كلاس c1ass.com | RSS | Arabic Rss | 0 | 06-04-2011 05:11 PM |
[ كلاس ] إطلاق الإصدار 2.8 من مكتبة php واللغة العربية | RSS | Arabic Rss | 0 | 05-19-2011 11:01 AM |
|