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

الموضوع: قالب جديد من برمجتي

  1. #1
    عضو نشيط
    تاريخ التسجيل
    May 2008
    المشاركات
    39

    قالب جديد من برمجتي



    بسم الله الرحمن الرحيم

    انا من جديد تعلمت البرمجة بالكائنات وفكرت اعمل شي خاص فيّ ,فقلت احسن شي اعمل سكربت ادارة محتوى واعمل له قالب فعال (مع العلم اني بالبرمجة العادية(او القديمة) مستواي متقدم وهذي المشاكل لأني بتعلم من النت من دون استاذ),

    فعملت صفحة القالب وهي temp.html:


    كود PHP:
    <head>
    <meta http-equiv="Content-Language" content="en-us">
    </head>
    <table border="0" cellspacing="0" id="table1" width="100%" height="100%">
    <tr>
    <td colspan="3">
    <p align="center">{head}</td>
    </tr>
    <tr>
    <td>
    <p align="center">{left}</td>
    <td>
    <p align="center">{midlle}</td>
    <td>
    <p align="center">{right}</td>
    </tr>
    <tr>
    <td colspan="3">
    <p align="center">{foot}</td>
    </tr>
    </table>

    وصفحة تانية وهي تحوي على الكلاس او الكائنclass.php:


    كود PHP:
    <?php

    class templete{

    var $file;

    function get_temp(){
    $open=@ fopen($this->file,"r");
    $read=@ fread($open,filesize($this->file));
    $close=@ fclose($open);
    return $read;
    }
    function replace($head,$foot,$left,$right,$where){
    $r=@ str_replace("/","",$_SERVER['PHP_SELF']);
    $read= file_get_contents($r);
    $old= array('{head}','{foot}','{midlle}','{right}','{left}');
    $new= array($head,$foot,$read,$right,$left);
    $temp=@ str_replace($old,$new,$where);

    echo $temp;
    }
    }
    $templete= new templete();
    $templete->file="temp.html";
    $templete->replace("فوق","تحت","يسار","يمين",$templete->get_temp());

    ?>
    لاحظ المشكلة في قراءة الملف في هذا المقطع :

    كود PHP:
    function replace($head,$foot,$left,$right,$where){
    $r=@ str_replace("/","",$_SERVER['PHP_SELF']);
    $read= file_get_contents($r);
    $old= array('{head}','{foot}','{midlle}','{right}','{left}');
    $new= array($head,$foot,$read,$right,$left);
    $temp=@ str_replace($old,$new,$where);

    echo $temp;
    }

    فلو نفذت السكربت بيعرضلي :


    كود:

    فوقيسارfile,"r"); $read=@ fread($open,filesize($this->file)); $close=@ fclose($open); return $read; } function replace($head,$foot,$left,$right,$where){ $r=@ str_replace("/","",$_SERVER['PHP_SELF']); $read= file_get_contents($r); $old= array('{head}','{foot}','{midlle}','يمين','يسار'); $new= array($head,$foot,$read,$right,$left); $temp=@ str_replace($old,$new,$where); echo $temp; } } $templete= new templete(); $templete->file="temp.html"; $templete->replace("فوق","تحت","يسار","يمين",$templete->get_temp()); ?>يمين
    تحت
    مع العلم اني اذا غيرت القراءة من الملف وعملت نص عادي متل "i love php" بيظهر من دون مشاكل.

    فما الحل برأيكم ؟؟ .. ارجو الرد بسرعة .







  2. #2
    عضو نشيط
    تاريخ التسجيل
    Feb 2008
    المشاركات
    35


    ازل علامة @ قبل الدوال عشان تعرف وين الخطأ





    التعديل الأخير تم بواسطة iMEG ; 23-06-2008 الساعة 11:28 PM
    __________________
    .. MEG ..

  3. #3
    عضو نشيط جدا
    تاريخ التسجيل
    May 2007
    المشاركات
    309


    في نظري لايعتبر نظام قوالب لماذا هذا كله اظم ان بعض الدوال زائدة ويوجد بديل لها وخاصة عند جلب الملف
    مثلا الدالة get_temp{}()
    يمكنك استبدالها بي
    كود PHP:
    if(!file_exists($this->file)){
                             echo 
    "<i>ERROR :</i> <b>".$this->file."</b> Template Not Found!"; exit();
                        }
                        
    ob_start();
                        include 
    $this->file
                        
    $HTMLob_get_clean();
                        return 
    $HTML
    او استخدام
    file_get_contents
    اذا اردت المساعدة وعجبتك فكرتي لاتردد في وضع رد
    سلامات





    __________________
    Bruce - مدونة شديدة التخصص في PHP وتطبيقات الويب

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


    اخي بس لو تشرح هذي الدوال , لأني ما فهمتها :
    ob_start();
    include $this->file;
    $HTML= ob_get_clean();
    return $HTML;

    وفي عندي استفسار عن :
    كيف بدي اعرض نتيجة الاكواد بمنتصف الصفحة يعني بدل {midlle} ,
    مثال :
    <?php

    include("class.php");

    echo "alm7trf";

    ?>

    بدي بالنص يطلع alm7trf





    التعديل الأخير تم بواسطة alm7trf ; 24-06-2008 الساعة 11:29 PM

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


    يا شباب المشكلة لسة ما انحلت !!






  6. #6
    عضو نشيط
    تاريخ التسجيل
    Mar 2008
    المشاركات
    63


    انت بتجلب الكلاس بالـinclude

    وبتطبع الـalm7trf

    اذا تبيه بدل الموديل اجلب ملف خارجي ضع فيه الموديل
    بدل امر الطباعه بنفس الملف

    والله اعلم






  7. #7
    عضو نشيط
    تاريخ التسجيل
    May 2008
    المشاركات
    39


    انا فعلا هيك فعلت بس بدي طريقة اكثر سلاسة ,, انا هذا الكلام كلو عارفة ..

    شكرا على ردك الجميل جدا ,, وعلى العموم انا قاعد بطبخ بفكرة بدماغي اكيد ان شا الله نافعة 100% .

    شكرا مرة تانية










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

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

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