السلام عليكم..
أحس السلسلة طالع منها غبااااااااااااار..
فآخر موضوع كتبته في هذه السلسلة قبل سنة تقريباً..
يا الله دارت الأيام بسرعة وهذا هو رمضان خلص..
حاجتنا اليوم عبارة عن مشكلة وقعت فيها وقد يقع فيها غيري .. لكن بتوفيق الله عز وجل يكون هناك حل لها ..
طبعاً الأصل في نقل الملفات من موقع لآخر أن يستخدم البعض التلنت أو غيرها من الأمور المتعلقة بالسيرفرات ..
لكن المشكلة أنه ليست كل السيرفرات توفر للمستضافين عندها التلنت أو غيره .. ناهيك عن عدم تجاوب بعض أصحاب السيرفرات مع هذه المشكلة ..
ويظل الحل ( الغير عملي ) لهذه المشكلة هو تنزيل الملفات ثم تحميلها من جديد..
وإذا كانت الملفات مثلاً 200 ميجا .. فمثل ما يقولون .. موت ياحمار ههههههه .. سيأخذ ذلك وقتاً طويلاً خصوصاً أصحاب إتصالات الإنترنت الضعيفة مثلي..
وماواجهتني من مشكلة هي أني أردت نقل حوالي 200 ملف حجمهم تقريباً 300 ميجا من موقع لآخر ..
وال 200 ملف هذه عبارة عن ملفات مضغوطة مثلاً ومرقمة من 1 إلى 200 ..
بداية ظللت أبحث من خلال معارفي على الإنترنت ومن خارج الإنترنت عمن لديه إتصال سريع.. وعاد أنواع الشحاتة هههههه الله لايبلاكم ..
وإذا بتوفيق من الله عز وجل ألهمت بفكرة سكربت بسيط جداً ..
أضع لكم الكود ثم أشرح لكم إن شاءالله ..
لنفترض أن الكود السابق في ملف إسمه index.php ..كود 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'>";
}
ويجب وضعه في المجلد بالموقع الجديد الذي نود نقل الملفات إليه مع ضرورة ترخيص المجلد 777 ..
ستلاحظون في السطور الثلاثة الأولى وضعنا عبارة شرطية وهي أنه إذا وصل المتغير i إلى 200 وهو عدد الملفات التي نود نقلها يتوقف السكربت ويعرض عبارة تم النقل ..
السطر الذي يلي ذلك وضعنا متغير = قيمة المتغير الحالية + 1 ..
وأول ما نفتح السكربت ستكون قيمة هذا المتغير صفر ثم بالقيمة السابقة سيزيد 1 فيبدأ بالعمل من 1..
مدري واضح كلامي السابق ولا لا هههههه ..
السطر اللي بعده وضعنا الرابط الذي تقع فيه الملفات التي نود نقلها ولو لاحظتم سترون أن إسم الملف هو المتغير السابق الذي سيتغير كل مرة ويضاف إليه واحد إلى أن يصل إلى 200 طبعاً ..
السطر الذي تلاه إستخدمنا في دالة جلب محتوى الملف والذي غالباً يكون كود غريب..
ثم إستخدمنا دوال الملفات في فتح ملف جديد بنفس الرقم الحالي الذي وصل إليه على الموقع الجديد ثم كما ترون إستخدمنا دالة الكتابة على الملف بحيث نكتب بالملف الجديد هذا محتوى الملف الذي فتحناه قبل قليل ..
وكما ترون بالسطر قبل الأخير وضعنا ميتا الإنتقال التلقائي لنفس ملف السكربت لكن لو تلاحظون وضعنا i=$i لكي ينقل الملف قيمة المتغير الحالي فإذا فتح من جديد أضفنا عليه واحد فنقل الملف الذي يلي الملف السابق وهكذا .. إلى أن يصل إلى 201 فيتوقف..
أتمنى يكون الشرح وفكرة السكربت واضحة ..
وترى ممكن إستخدام السكربت في نقل ولو ملف واحد مثلاً لكن يحبذ ما يكون حجمه كبير لكي لا تظهر أخطاء ..