تغطية مباشرة لأحداث منتدى الإعلام الجديد المقام بمدينة أبوظبي
هل تقترح تمديد مسابقة سوالف كاست؟

 

العودة   سوالف سوفت > قسم تطوير وبرمجة المواقع للمتقدمين > تطوير الويب
المدوّنات البحث مشاركات اليوم اجعل كافة المشاركات مقروءة

موضوع مغلق  
 
LinkBack أدوات الموضوع
عضو فعال جدا
تاريخ التسجيل: Dec 2000-
#1 (permalink)  
الحاجة أم الإختراع ( 11 ) : نقل ملفات متسلسلة من موقع لآخر !!


السلام عليكم ..
أحس السلسلة طالع منها غبااااااااااااار ..
فآخر موضوع كتبته في هذه السلسلة قبل سنة تقريباً ..
يا الله دارت الأيام بسرعة وهذا هو رمضان خلص ..

حاجتنا اليوم عبارة عن مشكلة وقعت فيها وقد يقع فيها غيري .. لكن بتوفيق الله عز وجل يكون هناك حل لها ..
طبعاً الأصل في نقل الملفات من موقع لآخر أن يستخدم البعض التلنت أو غيرها من الأمور المتعلقة بالسيرفرات ..
لكن المشكلة أنه ليست كل السيرفرات توفر للمستضافين عندها التلنت أو غيره .. ناهيك عن عدم تجاوب بعض أصحاب السيرفرات مع هذه المشكلة ..
ويظل الحل ( الغير عملي ) لهذه المشكلة هو تنزيل الملفات ثم تحميلها من جديد ..
وإذا كانت الملفات مثلاً 200 ميجا .. فمثل ما يقولون .. موت ياحمار ههههههه .. سيأخذ ذلك وقتاً طويلاً خصوصاً أصحاب إتصالات الإنترنت الضعيفة مثلي ..

وماواجهتني من مشكلة هي أني أردت نقل حوالي 200 ملف حجمهم تقريباً 300 ميجا من موقع لآخر ..
وال 200 ملف هذه عبارة عن ملفات مضغوطة مثلاً ومرقمة من 1 إلى 200 ..
بداية ظللت أبحث من خلال معارفي على الإنترنت ومن خارج الإنترنت عمن لديه إتصال سريع .. وعاد أنواع الشحاتة هههههه الله لايبلاكم ..
وإذا بتوفيق من الله عز وجل ألهمت بفكرة سكربت بسيط جداً ..

أضع لكم الكود ثم أشرح لكم إن شاءالله ..

كود PHP:
if($i=="200"){
echo
"تم النقل";
}else{
$i=$i+1;
$file="http://www.oldsite.com/files/$i.zip";
$file=implode(file($file));
$fp=fopen("$i.zip","w");
fwrite($fp,$file);
fclose($fp);
echo
"<meta http-equiv='Refresh' content='5; URL=index.php?i=$i'>";

لنفترض أن الكود السابق في ملف إسمه index.php ..
ويجب وضعه في المجلد بالموقع الجديد الذي نود نقل الملفات إليه مع ضرورة ترخيص المجلد 777 ..
ستلاحظون في السطور الثلاثة الأولى وضعنا عبارة شرطية وهي أنه إذا وصل المتغير i إلى 200 وهو عدد الملفات التي نود نقلها يتوقف السكربت ويعرض عبارة تم النقل ..
السطر الذي يلي ذلك وضعنا متغير = قيمة المتغير الحالية + 1 ..
وأول ما نفتح السكربت ستكون قيمة هذا المتغير صفر ثم بالقيمة السابقة سيزيد 1 فيبدأ بالعمل من 1 ..
مدري واضح كلامي السابق ولا لا هههههه ..
السطر اللي بعده وضعنا الرابط الذي تقع فيه الملفات التي نود نقلها ولو لاحظتم سترون أن إسم الملف هو المتغير السابق الذي سيتغير كل مرة ويضاف إليه واحد إلى أن يصل إلى 200 طبعاً ..
السطر الذي تلاه إستخدمنا في دالة جلب محتوى الملف والذي غالباً يكون كود غريب ..
ثم إستخدمنا دوال الملفات في فتح ملف جديد بنفس الرقم الحالي الذي وصل إليه على الموقع الجديد ثم كما ترون إستخدمنا دالة الكتابة على الملف بحيث نكتب بالملف الجديد هذا محتوى الملف الذي فتحناه قبل قليل ..
وكما ترون بالسطر قبل الأخير وضعنا ميتا الإنتقال التلقائي لنفس ملف السكربت لكن لو تلاحظون وضعنا i=$i لكي ينقل الملف قيمة المتغير الحالي فإذا فتح من جديد أضفنا عليه واحد فنقل الملف الذي يلي الملف السابق وهكذا .. إلى أن يصل إلى 201 فيتوقف ..

أتمنى يكون الشرح وفكرة السكربت واضحة ..
وترى ممكن إستخدام السكربت في نقل ولو ملف واحد مثلاً لكن يحبذ ما يكون حجمه كبير لكي لا تظهر أخطاء ..






رضا غير متواجد حالياً   قديم 06-11-2004, 09:26 PM
عضو نشيط
تاريخ التسجيل: Apr 2004-
#2 (permalink)  

السلام عليكم

الله عليك ياشيخ
هوه دا الكلام

ماشاء الله عليك رضا فنان بصراحه وعندك افكار جهنميه

عموما

لاتحرمنا جديدك

احترامي






__________________
No mercy in life
Khayaly غير متواجد حالياً   قديم 06-11-2004, 09:38 PM
عضو فعال
تاريخ التسجيل: Oct 2003-
#3 (permalink)  

بارك الله فيك اخوي رضا ما قصرت
وراعي واجب مشكور .
وراسلتك من فترة لكن لم اجد الرد






__________________
(( لا تنسي ذكر الله ))
ليس الجمال بأثوبا تزيننا ان الجمال جمال العلم والادب
المشوار غير متواجد حالياً   قديم 06-11-2004, 10:21 PM
عضو فعال
تاريخ التسجيل: Nov 2002-
#4 (permalink)  

كود صغير و جميل يفيدنا في حالة نزول ملفات هنا في سوالف على دليل واحد بشرط كون الملفات بأسماء مرقمة بين الصفر و 201
ولكن في حالة كون الملفات فيها حروف فما العمل ؟
اقترح ان يتم استخدام
كود PHP:
[-_.[:alnum:]] 
الذي يعمم على جميع الارقام و الحروف سواء الصغير منها او الكبير
و انطلاقا منها يمكنك ان تعمم الملفات الى جميع الامتدادات و الى جميع الادله ايضا
مما يمكنك ان استخدامه لتحميل موقع كامل بجميع ملفات و محتوياته
و لكن السؤال الذي يدور في ذهني بالنسبه الى الكود الذي طرحته
هل يعمل مع ملفات php اي هل يمكن عمل هذا ؟!
كود PHP:
$file="http://www.oldsite.com/files/$i.php"
و يقوم بتحميل الملف بصورته الاصليه ؟






__________________
نحوَ سوالف أفضل
عبدالكريم ابو السعود غير متواجد حالياً   قديم 06-11-2004, 11:03 PM
مشرف قسمي تطوير الويب و تقنية محركات البحث
تاريخ التسجيل: Jun 2003-
#5 (permalink)  

كود جميل و صغير جزاك الله الف خير أخوي رضا و لكن عندي سؤال بحسب اني عشيم في الامور هذي بس فهمت الكود و الحمد لله السؤال هو هل من الممكن جعله ينقل مجلدات و ليس ملفات يعني بدال ما اعدل اسماء كل الملفات اصنفهم مثل ما ابي في مجلدات و ارقمها ايضا و استخدم السكريبت فهل من الممكن ذلك

الشكر واصل للجميع






__________________
سبحان الله و بحمده .... سبحان الله العظيم

للمراسلة
b happy غير متواجد حالياً   قديم 07-11-2004, 12:41 AM
عضو فعال
تاريخ التسجيل: Nov 2002-
#6 (permalink)  


لقد استخدمت الكود لنقل backup حجمه 60 ميجا من host الى host في ثانيه واحده
شكرا لك اخي العزيز رضا على الفكره الرائعه
بصراحه جيت في وقتك






__________________
نحوَ سوالف أفضل
عبدالكريم ابو السعود غير متواجد حالياً   قديم 07-11-2004, 01:59 AM
عضو سوبر نشيط
تاريخ التسجيل: Nov 2001-
#7 (permalink)  

فكرة رائعة ورائده منك اخي المبدع دائما رضا
السؤال
كيف اضغط الملفات على الموقع الأول واعطيها الارقام التسلسلية ؟
لكي انقلها إلى الموقع الثاني

أنا جربت غيرت اسم الملف فقط وتتم عملية النقل ولكن الملف بعد نقله حجمه صفر

ونسأل الله لنا ولك جنات النعيم في هذا الشهر الكريم






__________________
تعلم فليس المرء يولد عالما
abutawfig غير متواجد حالياً   قديم 07-11-2004, 02:37 AM
عضو نشيط
تاريخ التسجيل: Jul 2001-
#8 (permalink)  

اخي الكريم جزاك الله كل الخير
ماذا لو أردت نقل فولدر كامل (الموقع كاملاً)كما تعرف المجلات تحتوي على مجلدات كثيرة ولو استخدمنا الكود سوف نجل اياما


أعرف ان فايلات المجلة ضغيرة ولكني أريد أن أتم النقل بسرعة






kjs1net غير متواجد حالياً   قديم 07-11-2004, 03:09 AM
عضو سوبر نشيط
تاريخ التسجيل: Aug 2004-
#9 (permalink)  

هل أستطيع مثلاً نسخ ملف من موقع إلى موقعي بهذه الطريقة ؟؟

أي أن الموقع المصدر ليس ملكي ..
يعني بالمختصر كأني أسوي داونلود على موقعي بدل جهازي ؟؟!






__________________
نحن أمة إقرأ التي لا تقرأ
مبرمج إنترنت غير متواجد حالياً   قديم 07-11-2004, 05:25 AM
عضو سوبر نشيط
تاريخ التسجيل: Apr 2004-
#10 (permalink)  

مشكور اخوى رضا على هذا الكود


نعم اخوى مبرمج إنترنت تستطيع نسخ ملف من موقع الى موقعك






Dea غير متواجد حالياً   قديم 07-11-2004, 05:54 AM
-
#11 (permalink)  

ماشاء الله تبارك الله اخي رضا

بالنسبة للسكربت من خلال فهمي له

تقدر تنقل مجلد مجلة النيوك مثلا من خلال موقعهم الى موقعك في ثواني
ويمكن اكون غلطان






  قديم 07-11-2004, 06:20 AM
خبير JavaScript
تاريخ التسجيل: Jul 2002-
Blog Entries: 15
#12 (permalink)  

فكرة رائعة أخي ما شاء الله و أظنها بداية لبرنامج كبير إن شاء الله
جزاك الله خيرا
رغم أني لست متخصصا في ال php لكن أحس أنه
يمكن أن تتطور الفكرة ليشمل نقل مجلد كامل بمحتوياته (ولو كانت أسماء الملفات الداخلية عشوائية) من سيرفر لآخر ، ستحتاج إلى كود آخر يوضع في الموقع المراد نقل الملفات منه ليستكشف لك أسماء الملفات و المجلدات الموجود بالداخل و تخزينها، و كود يوضع في الموقع المراد نقل الملفات إليه يحمل الملفات المخزنة في الموقع الأول

أو يمكن أن يتطور إلى FTP Server 2 Server نسخة php
و الله أعلم








Zizwar غير متواجد حالياً   قديم 07-11-2004, 07:36 AM
عضو فعال جدا
تاريخ التسجيل: Dec 2000-
#13 (permalink)  

السلام عليكم ..
ماشاءالله حقيقة لم أكن أتوقع أن يكون هناك تفاعل ..

المشوار .. معذرة لو تعيد إرسال رسالتك وتعنونها بإسمك هذا ..

عبدالكريم ابو السعود .. شكراً على إضافتك ولو أني لم أفهمها ولعلي أجربها أيضاً إن شاءالله ..
أما بخصوص سؤالك فبالطبع لايمكن نسخ ملف PHP بكوده البرمجي ..
وهذا طبعاً لدواعي أمنية يفرضها المتصفح ..
حيث لايمكن معرفة محتوى الملفات إلا فيما يختص بأوامر العرض وليس أوامر البرمجة والأكواد ..
وبخصوص الملف الذي نقلته فالحمدلله خلال ثانية .. لكن مازال لدي خوف أن لايعمل بالشكل المطلوب في حالة كون حجم الملف مثلاً 500 ميجا .. ما جربت لسع لكن إن شاءالله ماتكون فيه مشكلة ..

b happy .. دائماً البرمجة ليس لها نهاية .. ما كتبته هنا مجرد كود مبسط يفتح في ذهن المبرمج فكرة منطقية لحل المشكلة .. ما تقوله بالتأكيد يمكن عمله لكن سيحتاج بالطبع تطوير على الكود السابق ..
ومبدئياً أنصحك بسكربت MyTar للأستاذ علي العنزي يمكن من خلاله ضغط مجلد معين وسيحفظ لك الملف المضغوط على موقعك القديم وفي موقعك الجديد يمكنك إستخدام الكود الذي كتبته فوق ( مع بعض التعديلات عليه ) لكي ينقل لك الملف ..

abutawfig .. معذرة أخي يبدو فهمت خطأ .. الكود السابق في حالة وجود ملفات بموقعك أو أي موقع متسلسلة وتريد وضعها بموقع آخر لك .. وعلى كل راجع ردي للأخ b happy ..

kjs1net .. راجع ردي للأخ b happy .. وبإختصار إضغط كامل مجلد مجلة النيوك سيكون لديك مثلا nuke.tar.gz وإنقله للموقع الجديد بعد التعديل على الكود السابق سيكون في موقعك الجديد كما هو مضغوط من خلال File Manager في cPanel تستطيع تفك الضغط ..

مبرمج إنترنت .. نعم وسأضع مثال آخر إن شاءالله ..

DesignsClub .. نعم صحيح لكن لاحظ ردي لـ kjs1net و عبدالكريم ابو السعود ..

أستاذ Zizwar .. هههههه ما تدري يمكن نطلع سكربت ونعرضه مشفر هههههه ..
وبخصوص ما ذكرته نعم يمكن عمل ذلك لكن بشرط أن يكون الموقعين لك صلاحية في الدخول عليهما .. لكن لو كان لديك موقع وتود تنسخ ملفات من موقع ليس لك فلا تستطيع سوى نسخ الملفات التي تعرض على المتصفح لكن الأكواد البرمجية لن تنسخ .. إلا في حالة كما قلت يكون هناك ملف آخر في الموقع الأول ..






رضا غير متواجد حالياً   قديم 07-11-2004, 09:47 AM
عضو فعال جدا
تاريخ التسجيل: Dec 2000-
#14 (permalink)  

# مثال عملي لنقل ملفات صور قوالب موقع Template Monster إلى موقعك #

بداية لاشك أن موقع مثل www.templatemonster.com يحتوي على آلاف التصاميم الخاصة بالمواقع والتي تحمل أفكاراً رائعة يستفيد منها أي مصمم ..
وما سأكتبه بعد قليل مثالي عملي للكود السابق مع بعض التطوير والتعديل يمكننا من خلاله نقل ملفات صور قوالب موقع Template Monster إلى موقعك ..
ولسبب فني بسيط سأجعل الكود ينقل ملفات صور القوالب من 1000 إلى 6810 وهو آخر تصميم بالموقع وقت كتابتي لهذا الكود ..
وكمثال للصور التي سننقلها هذا :
http://images.templatemonster.com/sc...100/1111-b.jpg
طبعا يجب ملاحظة أمر مهم صحيح أننا سننقل حوالي 5810 ملف لكن يجب أن ننتبه أن كل 100 تصميم موجودة بمجلد إسمه عبارة عن الرقم لكن يرجع للمئة التي بدأ منها ..
مثلاً التصميم رقم 5449 مجلده 5400 والتصميم رقم 4105 مجلده 4100 وهكذا .. ويمكن أن نقول أول رقمين من اليسار مضاف عليهم صفرين ..
والآن إلى الكود :

كود PHP:
if($item=="6810"){
echo
"تم النقل";
}else{
$item=$item+1;
$folder=substr($item,0,2);
$folder="$folder"."00";
$file="http://images.templatemonster.com/screenshots/$folder/$item-b.jpg";
$file=implode(file($file));
$fp=fopen("$item.jpg","w");
fwrite($fp,$file);
fclose($fp);
echo
"<meta http-equiv='Refresh' content='2; URL=index.php?item=$item'>";

طبعاً ربما الكود السابق مفهوم حسب الشرح بالموضوع لكن لعل الجديد :
$folder=substr($item,0,2);
وهذا المتغير جعلنا قيمته تأتي عبر دالة تأخذ أول خانتين من المتغير الخاص برقم الصورة وطبعاً برابط الصورة وضعنا صفرين ..
والمجال مفتوح لأفكار كثيرة لكن لعل هذه تلميحات لبعضها ..
لاتنسوا المجلد الذي تضعوا فيه ملف السكربت هذا ترخصونه 777 ..
ولأنه مثل ما قلت لكم سنبدأ من التصميم رقم 1000 فافتحوا الملف على الشكل هذا :
index.php?item=999






رضا غير متواجد حالياً   قديم 07-11-2004, 10:09 AM
عضو نشيط
تاريخ التسجيل: Nov 2002-
#15 (permalink)  

عزيزي رضا،،


السلام عليكم

أخوي انا حاولت بالكودين مانفع


Warning: file("http://images.templatemonster.com/scre enshots//14-b.jpg") - Success in /home/mnf1com/public_html/ts/index.php on line 10

Warning: Wrong parameter count for implode() in /home/mnf1com/public_html/ts/index.php on line 10



؟؟؟

تحياتي لك






__________________
دع مايريبك الى ما لا يريبك...!!
ضيف1995 غير متواجد حالياً   قديم 07-11-2004, 11:07 AM
عضو نشيط
تاريخ التسجيل: Nov 2002-
#16 (permalink)  

حتى بعد تغيير اسماء المجلدات الى المجلدات الصحيحة

Warning: Wrong parameter count for implode() in /home/mnf1com/public_html/ts/index.php on line 10


؟؟






__________________
دع مايريبك الى ما لا يريبك...!!
ضيف1995 غير متواجد حالياً   قديم 07-11-2004, 11:18 AM
عضو فعال جدا
تاريخ التسجيل: Dec 2000-
#17 (permalink)  

ضيف1995 .. معذرة كان هناك خطأ في كتابة الملف ..
راجع ردي السابق عدلته ..
وبإختصار إفتح الملف على الشكل :
index.php?item=999






رضا غير متواجد حالياً   قديم 07-11-2004, 11:41 AM
مشرف قسمي تطوير الويب و تقنية محركات البحث
تاريخ التسجيل: Jun 2003-
#18 (permalink)  

مشكور اخوي رضا بالنسبة لموضوع البرمجه لاحق عليه انا رايح ادرس هندسة برمجيات في كندا بعدها نتكلم انا و انت بالأكود المشفرة على العموم جاري البحث عن سكريبت أخوي العنزي جزاك الله الف خير و اياه

بالتوفيق






__________________
سبحان الله و بحمده .... سبحان الله العظيم

للمراسلة
b happy غير متواجد حالياً   قديم 07-11-2004, 04:39 PM
عضو نشيط
تاريخ التسجيل: Nov 2002-
#19 (permalink)  

استاذي رضا،،،
لازلت اعاني من نفس المشكله استاذي

حيث الخطأ:

Warning: Wrong parameter count for implode() in /home/mnf1com/public_html/ts/index.php on line 10


اين المشكله ؟؟

شاكر لك

ابو خالد






__________________
دع مايريبك الى ما لا يريبك...!!
ضيف1995 غير متواجد حالياً   قديم 09-11-2004, 12:30 AM
عضو فعال
تاريخ التسجيل: Jul 2002-
#20 (permalink)  

غيرت ترخيص الملف لـ 777؟






__________________
هل تبحث عن نطاقات مميزة, لها معنى؟
إذا ما رأيك بإلقاء نظرة على هذه الباقة..
XPlus غير متواجد حالياً   قديم 09-11-2004, 01:08 AM
عضو فعال
تاريخ التسجيل: Sep 2003-
#21 (permalink)  

كح كح كح كح كح السلسلة قديمة ( صاحب الموضوع أيضاً قديم )


الموضوع مفيد جداً جداً ... واصل جزاك الله خير وأعانك ...






__________________
شبكة فله العربية
www . 4fallah . com
تلفزيون فله
تحميل فله

للفلة عنوان
abo soude غير متواجد حالياً   قديم 09-11-2004, 01:59 AM
عضو فعال جدا
تاريخ التسجيل: Dec 2000-
#22 (permalink)  

ضيف1995 .. لا أعلم حقيقة ربما سيرفرك ما يمكن من خلاله جلب محتويات ملفات خارجية ..

plus .. المجلد الذي به ملف السكربت يحتاج ترخيص 777 لكن الملف نفسه مو لازم ..






رضا غير متواجد حالياً   قديم 09-11-2004, 05:14 AM
عضو نشيط
تاريخ التسجيل: Apr 2004-
#23 (permalink)  

استاذ رضا

هل يمكنك اضافة شي للبرنامج ليقوم بنقل مجلدات ايضا مع محتوياتها لو تطلب الامر تركيب البرنامج على الموقعين القديم والجديد..؟ لانه فعلا سيكون انجاز لو اخذنا باعتبار انه لست بالضروره تنقل ملفات مضغوطة .. وبغض النظر عن الحجم لها ؟؟






__________________
www.qf-design.com
we_scooter غير متواجد حالياً   قديم 09-11-2004, 07:26 AM
عضو فعال جدا
تاريخ التسجيل: Dec 2000-
#24 (permalink)  

we_scooter ..
مافي شيء إسمه مستحيل .. كل شيء ممكن لكن يحتاج شوية تفكير .. وأعيد وأقول ما وضعته هنا مجرد مفتاح لفكرة ..
برأيي قد يمكن ذلك عبر تعرف البرنامج على أسماء المجلدات ووضعها بمصفوفة ثم إستعراض المجلدات ووضع كل أسماء ملفاتها بمصفوفة أخرى ويبدأ شيء فشيء نقل المحتويات ..
لكن العملية ستحتاج لكود مطول وحقيقة ليس لدي الوقت لعمله على الأقل حالياً ..
لكن بإختصار بالطبع ممكن ..
والبرمجة لها آفاق لاتنتهي لكن بالنهاية تحتاج تفكير منطقي جيد ..






رضا غير متواجد حالياً   قديم 09-11-2004, 07:45 AM
عضو نشيط
تاريخ التسجيل: Apr 2004-
#25 (permalink)  

الفكر بلا حد .. وهذي ظاهرة علمية حقيقية


لو كانت بمقابل وتفي بالغرض .. فهي ممتعه .. كما فعل مغترب مع السنفور الشقي والرائع جدا وليست خسارة 10 $ في فكرة مسلمة انيقة وعملية جدا ..


شكرا لك







__________________
www.qf-design.com
we_scooter غير متواجد حالياً   قديم 09-11-2004, 08:32 AM
موضوع مغلق


 

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

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

كود [IMG] متاحة
كود HTML معطلة
Trackbacks are متاحة
Pingbacks are متاحة
Refbacks are متاحة



الساعة الآن: 07:09 PM بتوقيت المملكة العربية السعودية