النتائج 1 إلى 6 من 6

الموضوع: [درس عملي]: تحويل ملفات ال php الى ملفات html لتخفيف الضغط على السيرفر

  1. #1
    عضو سوبر نشيط
    تاريخ التسجيل
    Feb 2001
    المشاركات
    749

    [درس عملي]: تحويل ملفات ال php الى ملفات html لتخفيف الضغط على السيرفر



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

    اول شي راح نعرف المجلدات اللي راح نحط الملفات فيه و التصاريح وكل شي .
    كود:
    /www/htdocs/mysite (مجلد الملفات)
    -- / static_html (المكان اللي راح نسوي في ملفات ال HTML )
    / static_genenerator (المكان اللي راح بكون في ملفات ال php)
    هذا الكود اللي راح أشرحه بدون الكود الاصلي


    كود PHP:
    <?php
    $url 
    "http://www.mysite.com";
    $sourcepage "$url/static_generator/tutorial_index.php";
    $tempfilename "/tmp/temp_tutorials.html";
    $targetfilename "/www/htdocs/mysite/static_html/tutorial_index.html";
    if (!
    $dynamic_source) {
    echo 
    "<strong>Unable to load $sourcepage
    - Static page! Update Failed!</strong>"
    ;
    exit();
    }
    $htmldata fread($dynamic_source1024*1024);
    fclose($dynamic_source);
    $tempfile fopen($tempfilename'w');
    if (!
    $tempfile) {
    echo
    "<strong>Unable to open temporary file $tempfilename for writing!
    Static page update aborted!</strong>"
    ;
    exit();
    }
    fwrite($tempfile$htmldata);
    fclose($tempfile);
    copy($tempfilename$targetfilename);
    unlink($tempfilename);
    echo 
    "<strong>Tutorial Index Updated!</strong>";
    ?>
    الشرح:
    كود PHP:
    $url "http://www.mysite.com";
    $sourcepage "$url/static_generator/tutorial_index.php";
    $tempfilename "/tmp/temp_tutorials.html";
    $targetfilename "/www/htdocs/mysite/static_html/tutorial_index.html"
    $url : المتغير اللي تكتب اسم الموقع بدون علامة / في نهاية العنوان.
    $sourcepage : ملف ال php اللي فيه الاوامر .
    $tempfilename : هذا الملف راح يكون للي راح نسويه بال Corn Jobs راح يسوي الملف و يحذفه تلقائي .
    $tragetfilename : هذا الملف النهائي اللي راح يطلع للزوار و تراح يتحدث على حسب اللي انت تحدده في ال Corn Jobs من لوحة التحكم .
    كود PHP:
    $dynamic_source fopen($sourcepage'r'); 
    هذا المتغير عشان تفتح الملف الموجود في المتغير $sourcepage للقراءة بس.
    كود PHP:
    if(!$dynamic_source){
    echo 
    "<strong>Unable to load $sourcepage
    - Static page! Update Failed!</strong>"
    ;
    exit();

    هذا الكود الشرطي يبن لنا اذا ما فتحت الملف للقراءة يطلع لك خطأ
    كود PHP:
    $htmldata fread($dynamic_source1024*1024);
    fclose($dynamic_source);
    $tempfile fopen($tempfilename'w'); 
    $htmldata : هذا المتغير يقرا لك المتغير $dynamic_source عبر دالة fread .
    دالة fclose هذي تسكر لك الملف و تتعامل مع متغير $tempfile .
    $tempfile : هذا راح يفتح متغير $tempfilename و يقراه و هو اللي راح يتعامل معه.

    كود PHP:
    if(!$tempfile){
    echo
    "<strong>Unable to open temporary file $tempfilename for writing!
    Static page update aborted!</strong>"
    ;
    exit();

    هذا الكود الشرطي يتأكد من ان المتغير $tempfile تم فتحه بشكل ممتاز واذا ما فتح بشكل صحيح يطلع لك خطأ.
    كود PHP:
    fwrite($tempfile$htmldata);
    fclose($tempfile); 
    هذا الكود يسوي لكم ملف جديد باللي موجود في المتغيرات $tempfile و $htmldata من اللي جبناه من المتغير $dunamic_source و السطر الثاني اللي راح يسكر متغير $tempfile عشاننا ما نبيها أكثر من كذا.
    كود PHP:
    copy($tempfilename$targetfilename);
    unlink($tempfilename);
    echo 
    "<strong>Tutorial Index Updated!</strong>"
    الحين راح يروح الكود الى مثواه الاخير J أٌصد خلاص هذي اخر خطوة في الكود . ننسخ الموجود في $tempfilename الى المتغير $tragetfilename اللي عرفناها من قبل .
    دالة unlink دالة كماليه تماما يعني عادي لو تحذفها .
    ودالة الطباعة كذلك كمالية تبي تحطها او بكيفك ما راح تأثر.

    الحين باقي الكود هذا الكود كامل اللي راح تشغله بال Corn


    الدالة هي :
    كود PHP:
    <?php 
    //1 hour cron script 
    $url "http://www.mysite.com";

    function 
    tutorial_index($url){ 
    $sourcepage "$url/static_generator/tutorial_index.php";
    $tempfilename "/tmp/temp_tutorials.html";     
    $targetfilename "/www/htdocs/mysite/static_html/tutorial_index.html";
    if (!
    $dynamic_source){  
    echo 
    "<strong>Unable to load $sourcepage  
    - Static page! Update Failed!</strong>"
    ;     
    exit(); 
    }
    $htmldata fread($dynamic_source1024*1024);  
    fclose($dynamic_source); 
    $tempfile fopen($tempfilename'w');
    if (!
    $tempfile) {  
    echo
    "<strong>Unable  to open temporary file $tempfilename for writing! 
    Static page update aborted!</strong>"
    ;     
    exit(); 
    }
    fwrite($tempfile$htmldata); 
    fclose($tempfile); 
    copy($tempfilename$targetfilename);  
    unlink($tempfilename);  
    echo 
    "<strong>Tutorial Index Updated!</strong>"
    }

    function 
    user_tutorials($url){   
    $sourcepage "$url/static_generator/user_tutorial_index.php";  
    $tempfilename "/tmp/temp__user_tutorials.html";     
    $targetfilename "/www/htdocs/mysite/static_html/user_tutorial_index.html";
    if (!
    $dynamic_source){
    echo 
    "<strong>Unable to load $sourcepage  
    - Static page! Update Failed!</strong>"
    ;     
    exit(); 
    }
    $htmldata fread($dynamic_source1024*1024);  
    fclose($dynamic_source); 
    $tempfile fopen($tempfilename'w'); 
    if (!
    $tempfile) {  
    echo
    "<strong>Unable  to open temporary file $tempfilename for writing! 
    Static page update aborted!</strong>"
    ;     
    exit(); 
    }
    fwrite($tempfile$htmldata); 
    fclose($tempfile); 
    copy($tempfilename$targetfilename);  
    unlink($tempfilename);  
    echo 
    "<strong>User Submitted Tutorial Index Updated!</strong>"

    tutorial_index($url); 
    user_tutorials($url); 
    ?>
    نصيحة خل ال Corn كل نص ساعة او ساعة بالكثير عشان يكون التحديث سريع
    و طبعا كل واحد و له طريقته في عمل الكود هذا شي عادي و مثل ما يقولون كل الطرق تؤدي الى روما
    بعض الناس يقول ليه اسوي كذا ابي المعلومات تتحدث كلما دخل الزاير للموقع اقوله هذا اذا كان عندك ترافيك عالي طبعا راح تستخدم الطريقة اما اذا كان الترافيك عندك قليل راح تستخدم طريقتي .

    وصل الله وبارك
    وما ننتظر منكم الا الدعاء.

    المحارب





    __________________
    www.fmlog.com
    المحارب غير متواجد حالياً


  2. #2
    عضو سوبر نشيط
    تاريخ التسجيل
    Nov 2001
    المشاركات
    823


    بارك الله فيك
    هذي والله الدروس اللي تفيد
    من زمان وانا ادور هذا الدرس
    والحمد لله انك شرحته

    الف شكر لك
    وجزاك الله خير





    __________________
    يارب تهديني قبل لحظة الفوت ++ وتجزل ثوابي يا جزيل العطايا
    طريق التوبة II ذكرى II قلوب الأنقياء II صيد الفوائد IIمنابر الدعوة IIدعوة IIكلمات
    مهلا فقد يلد الأسى أفراحا ++ فالليل ينجب للحياة صباحا
    أبو الوليد غير متواجد حالياً

  3. #3
    عضو فعال
    تاريخ التسجيل
    Feb 2003
    المشاركات
    1,308


    بارك الله فيك
    وجزاك الله خيرا





    fnan4arab غير متواجد حالياً

  4. #4
    عضو نشيط
    تاريخ التسجيل
    Apr 2001
    المشاركات
    89


    شكراً لك استاذي / فهد ..
    ماقصرت





    اخوك / حرباز





    __________________
    أخوكم حرباز طربن
    herbaz_t@yahoo.com
    باسم911 غير متواجد حالياً

  5. #5
    عضو نشيط
    تاريخ التسجيل
    Jun 2003
    المشاركات
    269


    مشكور اخوي وعساك على القوة





    __________________
    We provide you all ways to contact with others.
    نقدم لكم افضل العروض لرسائل الجوال وبرمجيات رسائل الجوال
    SMS FREE
    www.Mysms.Tv
    Php4Mee غير متواجد حالياً

  6. #6
    عضو سوبر نشيط
    تاريخ التسجيل
    Feb 2001
    المشاركات
    749


    أبو الوليد
    الحمد لله انك استفدت منه

    وهذا هدفي من طرح الدرس

    fnan4arab
    وياك

    باسم911

    يا حرباز أي استاذ الله يهديك

    رحم الله امرئ عرف قدر نفسه

    مشكور اخوي وعساك استفدت من الطريقة

    Php4Mee
    الله يقويك


    المحارب :shy:





    __________________
    www.fmlog.com
    المحارب غير متواجد حالياً





ضوابط المشاركة

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