العودة   منتديات المجاوشي > منتديات مجاوشي للترفيه والتسلية > :: RSS :: > Arabic Rss
Arabic Rss Arabic Rss تنويه : المعهد غير مسؤول عن ما يحويه هذا القسم .... وجب لاتنويه والتحذير

الملاحظات


[ كلاس ] كلاس ftp

Arabic Rss


 
  #1  
قديم 06-27-2011
الصورة الرمزية RSS
RSS غير متواجد حالياً
ناقل الأخبار
 
تاريخ التسجيل: 11 - 2 - 10
المشاركات: 660,845
RSS is on a distinguished road
افتراضي [ كلاس ] كلاس ftp

السلام عليكم ورحمة الله تعالى وبركاته ,
قضى بي الجلوس امام الحاسوب الى كتابة كلاس للتعامل مع 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]








أكثر...
 

مواقع النشر (المفضلة)

أدوات الموضوع
انواع عرض الموضوع

تعليمات المشاركة
لا تستطيع إضافة مواضيع جديدة
لا تستطيع الرد على المواضيع
لا تستطيع إرفاق ملفات
لا تستطيع تعديل مشاركاتك

BB code is متاحة
كود [IMG] متاحة
كود HTML معطلة

الانتقال السريع

المواضيع المتشابهه
الموضوع كاتب الموضوع المنتدى مشاركات آخر مشاركة
[ تبادل اعلاني ] : دليل كلاش: نصي مع آي موقع 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


Loading...


Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd. منتديات بلاك بيري mjawshy.net
المجاوشي للتقنية المتقدمة