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

الملاحظات


[ كلاس ] كلاس ftp

Arabic Rss


 
 
أدوات الموضوع انواع عرض الموضوع
  #1  
قديم 06-27-2011
الصورة الرمزية RSS
RSS غير متواجد حالياً
ناقل الأخبار
 
تاريخ التسجيل: 11 - 2 - 10
المشاركات: 660,029
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
المجاوشي للتقنية المتقدمة