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

الموضوع: تسريع طباعة النصوص فى php

  1. #1
    عضو جديد
    تاريخ التسجيل
    Feb 2009
    المشاركات
    28

    Lightbulb تسريع طباعة النصوص فى php



    السلام عليكم ورحمة الله وبركاته

    درسنا اليوم عن تسريع طباعة النصوص فى php واستخدام احسن الطرق للتعامل معها

    تتمثل هذه الطرق فى 7 نقاط :

    اولا :
    نستخدم علامات الاقتباس (') وليس (") في طباعة النصوص التى لا تحتوى على متغيرات ( سيتم التوضيح اكثر فى النقط التالية) .

    ثانيا - المصفوفات :
    للمصفوفات اكثر من طريقة للتعامل معها وجميعها جيدة

    كود PHP:
    echo $row $key ];
    //او
    echo $row 'key' ]; 
    ثالثا :
    عند وجود اجزاء كبيرة من اكواد html يمكنك اقفال وسم php وكتابة اكواد html لان هذا يعتبر اسرع من الطباعة بدوال ال php

    رابعا :
    تجنب استخدام هذه الطريقة :

    كود PHP:
    $string '1';
    $string .= 'and 2';
    $string .= 'and 3';
    $string .= 'and 4';
    $string .= 'and 5'
    او هذه :

    كود PHP:
    $string '1'
    'and 2'
    'and 3'
    'and 4'
    'and 5'
    والطريقة الافضل هي :

    كود PHP:
    $string '1
    and 2
    and 3
    and 4'

    لماذا ؟
    لأنه فى المثال الاول والثانى تقوم PHP بتخصيص مكان فى الذاكرة للمتغيرات المتعددة ثم تقوم بتجميع هذه الاسطر لهذا فهى تستهلك وقت اكثر من المثال الثالث لان المثال الثالث لا يقوم بتجميع الاسطر وانما طباعتها مباشرة ( يجب عند استعمال هذه الطريقة تنظيمها جيدا حتى تستطيع قراءة الكود جيدا وبسهولة فى المرة التالية )

    خامسا :
    يفضل عدم وضع المتغيرات فى علامات الاقتباس " " لان السيرفر سيضطر للبحث داخل النص لايجاد المتغير

    كود PHP:
    $string 'this string is faster with '.$foo.' in it';

    //اسرع من 

    $string "this string is slower with $foo in it"
    سادسا :
    لطباعة اكواد كبيرة من html مع طباعة متغيرات بوسطها استخدم علامات الاقتباس الفردية ' ' ( بدلا من علامات الاقتباس المزدوجة " " (البطيئة) او الخروج والدخول من php )

    كود PHP:
    echo 
       Hello,<br /> 
       My name is ' 
    $name ' ' $lastname ' and am ' $age ' years old.<br /> 
       I live in ' 
    $city ', ' $country ' since I was born.<br /> 
       You can contact me at ' 
    $email ' or by phone at ' $phone '<br /> 
       Regards,<br /> 
       ' 
    $name ' ' $lastname '<br /> 
     ' 

    هذه الطريقة من افضل الطرق واسرعها كما يمكن ان تكون مريحة جدا عندى الاستعمال فى نظام قوالب php بسيط

    سابعا :
    استخدام str_replace بدلا من preg_replace أو ereg_replace . ولا تقم باستخدام preg_replace أو ereg_replace الا اذا كنت حقا بحاجة الى استخدام التعبيرات القياسية .

    كود PHP:
     $string "The quick brown fox jumps over the lazy dog." 
     
    $patterns ] = "quick" 
     
    $patterns ] = "brown" 
     
    $patterns ] = "fox" 
     
     
    $replacements ] = "slow" 
     
    $replacements ] = "black" 
     
    $replacements ] = "bear" 
     
     
    $string str_replace $patterns $replacements $string ); 
     
     
    //$string="The slow black bear jumps over the lazy dog." 
    هذه الطرق قرأتها فى احد المنتديات الاجنبية و هي ايضا عن تجربة شخصية

    وهذا مالدي الان فإن اخطأت فمن نفسي والشيطان وإن اصبت فمن الله عز وجل

    تحياتي ،، عمرو النجار





    __________________
    Amr Elnaggar - PHP Programmer


  2. #2


    ماشاء الله عليك ياعمور بجد شرح مفيد جدا
    تسلم أيدك ياباشا





    __________________
    ( اللهم إنك عفوٌ كريمٌ تحب العفو فاعف عني )
    php Developer
    Short - Unshort Url | Moslsly.com

  3. #3
    عضو جديد
    تاريخ التسجيل
    Feb 2009
    المشاركات
    28


    ماشاء الله عليك ياعمور بجد شرح مفيد جدا
    تسلم أيدك ياباشا
    شكرا يا ادهم ،،
    اتمنى تكون استفدت





    __________________
    Amr Elnaggar - PHP Programmer

  4. #4
    عضو فعال
    تاريخ التسجيل
    Jul 2008
    المشاركات
    1,516


    انا استفدت مع خبرتي. لكنك نبهتني لقضية ال " و ' فالمنطق واضح لكنني لم انتبه له من قبل.

    مع انني سأبدي ملاحظتي - أن هذه الملاحظات تكون مهمة في البرامج الكبيرة والمعقدة.
    يمكن تجربة ما ذكرته بواسطة قياس الزمن قبل وبعد - زمعرفة الوقت المستغرق لتطبيق العمليات كلها.





    __________________
    أحب سوالف ولا احب الجدليين!
    اسماء اولاد وبنات http://muslim-names.us
    1000 مزاد http://1000mazad.com
    موقع نكت سعوديةhttp://arab-jokes.net

  5. #5
    عضو فعال
    تاريخ التسجيل
    Aug 2004
    المشاركات
    1,974


    يعطيك العافيه عمرو
    لكن عندي ملاحظه على النقطه رقم 5
    السيرفر بكل الاحوال سيبحث في النص سواء موجود المتغير او غير موجود لان السيرفر ببساطه لايعلم ان المتغير غير موجود في النص


    خامسا :
    يفضل عدم وضع المتغيرات فى علامات الاقتباس " " لان السيرفر سيضطر للبحث داخل النص لايجاد المتغير

    كود PHP:
    $string 'this string is faster with '.$foo.' in it';

    //اسرع من 

    $string "this string is slower with $foo in it"







  6. #6
    عضو جديد
    تاريخ التسجيل
    Feb 2009
    المشاركات
    28


    انا استفدت مع خبرتي. لكنك نبهتني لقضية ال " و ' فالمنطق واضح لكنني لم انتبه له من قبل.

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





    __________________
    Amr Elnaggar - PHP Programmer

  7. #7
    عضو جديد
    تاريخ التسجيل
    Feb 2009
    المشاركات
    28


    يعطيك العافيه عمرو
    لكن عندي ملاحظه على النقطه رقم 5
    السيرفر بكل الاحوال سيبحث في النص سواء موجود المتغير او غير موجود لان السيرفر ببساطه لايعلم ان المتغير غير موجود في النص
    لا , لانه عند استخدام علامات الاقتباس الفردية ' ' لايقوم السيرفر بالبحث داخله يعنى لو قمت بكتابة نص يوجد بوسطه متغير لن يقوم بوضع قيمة المتغير
    كود PHP:
    $string 'this string is slower with $foo in it'
    فسيقوم بطباعة التالى
    كود:
    this string is faster with $foo in it
    لان السيرفر يقوم بطباعة ما به مباشرة
    اما علامات الاقتباس الزوجيه " " يقوم السيرفر بالبحث داخله ثم الطباعة >>> وقت اطول





    __________________
    Amr Elnaggar - PHP Programmer

  8. #8
    عضو شرف
    تاريخ التسجيل
    Mar 2003
    المشاركات
    1,899


    كلام عمرو صحيح بخصوص الفرق بين " و '

    ايضاً افتكر انني قرأت ان print اسرع من echo لكنني لست متأكد





    __________________
    محلل لنظم المعلومات - ارسل لي رساله خاصه عبر المنتدى | join me on facebook / twitter
    php | flash&flex&air actionscript 2,3 | ajax&javascript | database pro Analyzer

  9. #9
    عضو جديد
    تاريخ التسجيل
    Feb 2009
    المشاركات
    28


    كلام عمرو صحيح بخصوص الفرق بين " و '

    ايضاً افتكر انني قرأت ان print اسرع من echo لكنني لست متأكد
    قرأت ايضا هذه المعلومة لكنى لم اجد مصدر مأكد لها فى موقع ال php
    ولكنى رأيت Rasmus Lerdorf يستخدم echo دائما فى برمجياته وليس print
    >>>> صاحب اللغة وادرى بيها





    __________________
    Amr Elnaggar - PHP Programmer

  10. #10
    عضو نشيط
    تاريخ التسجيل
    Mar 2003
    المشاركات
    167


    سلمت اناملك يا بطل...
    وجزاك الله خيرا





    __________________
    لاإله إلا الله ... اللهم صل على عبدك وسولك محمد.

    الأسواق الحرة

    اللهم شاف والدي من داء السرطان وجميع مرضى المسلمين. آمين

  11. #11
    عضو نشيط جدا
    تاريخ التسجيل
    Jan 2008
    المشاركات
    512


    مشكور على المعلومات الجيدة، هناك بعض الملاحظات.

    - اذا كان النص طويل نوعا ما، و المتغيرات التي نحتاج لادراجها قليلة نوعا ما فيكون من الافضل استعمال علامة التنصيص المفردة
    لأن استخدام علامة التنصيص المزدوجة سوف يجعل المترجم يبحث في كامل النص عن متغيرات اخرى.
    لذلك وجهة نظر PHP Expert تكون صحيحة اذا زاد طول النص او قل عدد المتغيرات.

    - التدقيق في استخدام واحدة منهم قد لا يكون تأثيره على سرعة الكود كبير نظرا لأن المسرعات مثل APC تقوم بهذا العمل نيابة عنا عند اول تنفيذ للصفحة.

    - استخدام echo اسرع من print. السبب ان print تستخدم opcode اضافي حيث ترجع رقم 1 كدليل على نجاح عملها و طباعتها للنص
    و بما ان مبرمجي PHP ليسوا بحاجة لمعرفة نتيجة طباعة الكود، فيكون الافضل استخدام echo.


    * موضوع ذو علاقة http://www.swalif.net/softs/swalif45/softs260974/





    __________________
    محمد حمود.

  12. #12
    عضو جديد
    تاريخ التسجيل
    Feb 2009
    المشاركات
    28


    سلمت اناملك يا بطل...
    وجزاك الله خيرا


    مشكور على المعلومات الجيدة، هناك بعض الملاحظات.

    - اذا كان النص طويل نوعا ما، و المتغيرات التي نحتاج لادراجها قليلة نوعا ما فيكون من الافضل استعمال علامة التنصيص المفردة
    لأن استخدام علامة التنصيص المزدوجة سوف يجعل المترجم يبحث في كامل النص عن متغيرات اخرى.
    لذلك وجهة نظر PHP Expert تكون صحيحة اذا زاد طول النص او قل عدد المتغيرات.

    - التدقيق في استخدام واحدة منهم قد لا يكون تأثيره على سرعة الكود كبير نظرا لأن المسرعات مثل APC تقوم بهذا العمل نيابة عنا عند اول تنفيذ للصفحة.

    - استخدام echo اسرع من print. السبب ان print تستخدم opcode اضافي حيث ترجع رقم 1 كدليل على نجاح عملها و طباعتها للنص
    و بما ان مبرمجي PHP ليسوا بحاجة لمعرفة نتيجة طباعة الكود، فيكون الافضل استخدام echo.


    * موضوع ذو علاقة http://www.swalif.net/softs/swalif45/softs260974/
    شكرا على الاضافة المميزة:nice:





    __________________
    Amr Elnaggar - PHP Programmer





المواضيع المتشابهه

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

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

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