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

الموضوع: هل هنالك بديل لدالة الـ include؟ و هل استعمالها بكثرة ضمن الصفحة مضر؟

  1. #1

    هل هنالك بديل لدالة الـ include؟ و هل استعمالها بكثرة ضمن الصفحة مضر؟



    السلام عليكم و رحمة الله و بركاته..
    الاخوة الكرام لدي استفسار بسيط..
    في الواقع لدي مجموعة من الصفحات يتجاوز عددها ال 3 الالاف..بلغة الhtml و لقد اتحت تطبيق اوامر الphp في تلك الصفحات عن طريق ال htaccess.
    ول اني اقوم ببعض التعديلات احيانا فقد قمت بتصميم هيدر و فوتر موحد و اجزاء اخرى من الصفحة تزيد عن ال 10 اجزاء و بالتالي فانا اقوم بتضمينها في الصفحة عن طريق الدالة include() و قد سمعت ان ذلك من اسباب ارتفاع اللود و بالفعل فانا اعاني من هذا الارتفاع فهل هنالك طريقة افضل باستعمال دالة اخرى مضمونة
    هل تقترحون مثلا تضمين ملف واحد في بداية الصفحة بلغة ال php ثم عرض اجزاء المنتدى بمتغيرات يتم جلبها من ملف واحد بدل 10 ملفات
    اي بالطريقة التالية:
    <? print "$site_name"; ?>
    اي طبع المتغير و بالتالي فاقوم بوضع كود وحيد للدالة include() في بداية الصفحة
    و اشكر لكم مساعدتكم و السلام عليكم.





    التعديل الأخير تم بواسطة عبد الرحمن الحامد ; 17-06-2009 الساعة 08:46 PM


  2. #2


    سؤال اضافي آخر:
    هل بالامكان اضافة كود في بداية و نهاية صفحة ما لتقوم باظهار عدد الاستعلامات في الصفحة و استهلاكها من الرام ثم كم من الوقت لانشائها






  3. #3
    عضو نشيط
    تاريخ التسجيل
    Oct 2008
    المشاركات
    283


    بعض الحلول السريعة:

    #1
    الكود الخاص بكل قالب ضعه في function وضعهم جميعاً في ملف واحد اسمه temp_func على سبيل المثال - ثم استدعيه في كل صفحة جديدة عن طريق include() ومن ثم عندما تريد طباعة الهيدر مثلاً ستستدعي دالة الهيدر وإذا أردت طباعة الفوتر استدعي دالتها وهكذا - وتكون بذلك جمعت القوالب في ملف واحد ووضعتهم في functions واستدعيته مرة واحدة وبدون تكرار include().

    #2
    اعمل ملف رئيسي وسميه مثلاً index.php وضع فيه جميع أجزاء القالب ( هيدر أوفوتر ) وفي الجزء الخاص بـcontent الصفحة اعمل استدعاء للملف الخاص بها والذي سيتم الإشارة إليه من خلال $_GET فمثلاً الصفحة الرئيسية ممكن يأخذ رابطها الصيغتين index.php أو index.php?page=home - هنا بالطبع سنستدعي ملف home.php في منطقة الـ content في الملف index.php - وملف تسجيل الدخول مثلاً سيكون على هذه الشاكلة index.php?page=login وهنا أيضاً ستستدعي ملف login.php ليكون محتوى هذه الصفحة ( إحذر في هذه الطريقة ثغرة Remote file include ).

    #3
    قريباً .. ( استخدمتها في اسكريبت ونجحت 100/100).





    __________________
    اللهم وفقني لما تحبه وترضاه...

  4. #4
    عضو نشيط
    تاريخ التسجيل
    Oct 2008
    المشاركات
    283


    آسف .. نسيت أهم شيئ:
    الدالة file_get_contents - والتي تستخدم في محركات القوالب بإعتبراها أنها تأخذ محتوى HTML للقالب وتضعه في متغير ومن ثم طبعها أو إجراء أي عمليات علي الكود قبل طباعته.





    __________________
    اللهم وفقني لما تحبه وترضاه...

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


    انا استخدم هذا الكود
    كود PHP:
    function getfile($filename) {
    global 
    $websitename;
            
    ob_start();
            include 
    $filename;
            
    $contents ob_get_contents();
            
    $contents str_replace("{sitename}",$websitename,$contents);
            
    ob_end_clean();
            return 
    $contents;
        return 
    false;

    الاستخدام
    كود PHP:
    $file getfile("template/9q9q/header.html");
    echo 
    $file






    التعديل الأخير تم بواسطة rad12345 ; 18-06-2009 الساعة 03:40 PM

  6. #6


    بعض الحلول السريعة:

    #1
    الكود الخاص بكل قالب ضعه في function وضعهم جميعاً في ملف واحد اسمه temp_func على سبيل المثال - ثم استدعيه في كل صفحة جديدة عن طريق include() ومن ثم عندما تريد طباعة الهيدر مثلاً ستستدعي دالة الهيدر وإذا أردت طباعة الفوتر استدعي دالتها وهكذا - وتكون بذلك جمعت القوالب في ملف واحد ووضعتهم في functions واستدعيته مرة واحدة وبدون تكرار include().

    #2
    اعمل ملف رئيسي وسميه مثلاً index.php وضع فيه جميع أجزاء القالب ( هيدر أوفوتر ) وفي الجزء الخاص بـcontent الصفحة اعمل استدعاء للملف الخاص بها والذي سيتم الإشارة إليه من خلال $_GET فمثلاً الصفحة الرئيسية ممكن يأخذ رابطها الصيغتين index.php أو index.php?page=home - هنا بالطبع سنستدعي ملف home.php في منطقة الـ content في الملف index.php - وملف تسجيل الدخول مثلاً سيكون على هذه الشاكلة index.php?page=login وهنا أيضاً ستستدعي ملف login.php ليكون محتوى هذه الصفحة ( إحذر في هذه الطريقة ثغرة Remote file include ).

    #3
    قريباً .. ( استخدمتها في اسكريبت ونجحت 100/100).
    آسف .. نسيت أهم شيئ:
    الدالة file_get_contents - والتي تستخدم في محركات القوالب بإعتبراها أنها تأخذ محتوى HTML للقالب وتضعه في متغير ومن ثم طبعها أو إجراء أي عمليات علي الكود قبل طباعته.
    انا استخدم هذا الكود
    كود PHP:
    function getfile($filename) {
    global 
    $websitename;
            
    ob_start();
            include 
    $filename;
            
    $contents ob_get_contents();
            
    $contents str_replace("{sitename}",$websitename,$contents);
            
    ob_end_clean();
            return 
    $contents;
        return 
    false;

    الاستخدام
    كود PHP:
    $file getfile("template/9q9q/header.html");
    echo 
    $file
    جزاكم الله كل خير بحثت عن طريقة واحدة و الحمد لله مع خبراء سوالف جزاهم الله كل خير لدي عدة خيارات
    راح اطبق افضل طريقة بحول الله و اجدد شكري لكم.:shy:










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

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

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