معهد دعم اتش فى اى بى اس لحلول الويب - Powered by vBulletin


 
 
صفحة 2 من 4 الأولىالأولى 1234 الأخيرةالأخيرة
النتائج 11 إلى 20 من 33

الموضوع: متكامل فى php

  1. #11
    أدارى
    الصورة الرمزية HVIPS4


    تاريخ التسجيل: Jun 2011
    رقم العضوية: 6
    الدولة: Cairo
    المشاركات: 1,979
    HVIPS4 غير متواجد حالياً

    رد: متكامل فى php


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

    متطلبات قبل البدأ :

    • لا يوجد

    اهداف الدرس:

    • اعادة استخدام الكود
    • ادراج الملفات
    • الداله require
    • الداله include
    • لماذا احتاج الى الدوال ( functions )
    • الدوال ( functions )
    • استخدام ادراج الملفات مع الدوال

    اعادة استخدام الكود : ماذا نعني بإعادة استخدام الكود ؟ لنذهب بعيدا عن البرمجه وعن الدنيا بشكل اوسع , نجعل مخيلاتنا تتحكم بنا لمدة دقيقتان , لماذا نعيد استخدام شي معين ؟ اننا نعيد استخدامه لانه مفيد جدا اليس كذلك ؟ لو كنت طالب في احدى المدارس مثلا , لديك شنطه تضع بها كتبك الدراسيه , احببت هذه الشنطه , الجوده , التحمل , القيمه , تستخدمها كل سنه وكل ترم في الدراسه , وقت الاجازات تهملها , ولكن قد تستعملها لتضع ملابس السباحه اذا اردت الذهاب الى النادي , تستخدمها لحفظ اشياء القيمه , لست طالبا ؟ لنقل انك معلم , لديك بعض من شروحات الدروس على الكمبيوتر , تستخدمها في كل سنه , تغير المنهج الذي تقوم بتدريسه او اصدرت نسخه جديده , لن تقوم بمسح جميع شروحاتك , بل سوف تقوم بتعديل اللازم. لنرجع الان عالمنا ونعيد السؤال لماذا نحتاج الى اعادة استخدام الكود, تخيل انك تعمل في شركه, والشركه لديها موقع وانت المسؤول عنه , رأس صفحات الموقع كلها نفس الشي , ذيل صفحات الموقع كله نفس الشي , مرت الايام كبرت الشركه وزاد عدد الصفحات الى اكثر من 100 صفحه , جاء اليك المدير طالبا بإضافة البريد الالكتروني في رأس كل صفحه من صفحات الموقع , او طلب تغييرات طفيفه ؟ ماذا سوف تفعل ؟ مجهود كبير اليس كذلك ؟
    مفهوم اعادة استخدام الكود يعتبر هدف من اهداف هندسة برمجيات الكمبيوتر , ليس ذلك لانهم كسولين ولا يحبون العمل او كتابة الاكواد , ولكن لانه الافضل من نواحي كثيره , من حيث القيمه , من حيث الاعتماد على الكود , من حيث التماسك ولكل منها كلام يطول , ويمكن البحث في google او في MSN بكتابة العباره التاليه :
    ( why reuse code in programming ).
    ادراج الملفات :
    قرأت قبل قليل مثال عملك في الشركه , والموقع الذي اصبح عباره عن 100 صفحه , كيف يمكنك التغلب على هذه المشكله , هنا تأتي فائدة ادراج الملفات , لنقم بحل المشكله , عند دخولنا لمنتديات وحتى شبكة ارسن , تجد ان جميع الصفحات لها رأس واحد ( header ) ولها ذيل واحد ( footer ) والاختلاف دائما يكون في محتوى الصفحه ( في النصف ) وهذا ما نسميه ( body ) , لنقم بمشاهدة مثال على ذلك , انظر التالي :
    نقره لتكبير أو تصغير الصورة ونقرتين لعرض الصورة في صفحة مستقلة بحجمها الطبيعي
    الان لدينا , رأس وذيل ومحتوى , الرأس والذيل ثابتين لا يتغيرون في جميع الصفحات , ولكن المحتوى يتغير , مره تظهر اخبار , ومره يظهر تصويت , ومره يظهر معلومات عن الشركه , الان تخيل ان هذا هو موقع الشركه , ولديك 100 صفحه , والمدير فرض عليك عليك ان تقوم بتغيير الشعار من ( درسي … اونلاين ) الى ( برمجتي … اونلاين ) , ماذا ستفعل ؟ ستقوم بتغيرر جميع الصفحات وكم سيأخذ هذا من الوقت , لكن تخيل ان هذه منفصله , الرأس لوحده , والذيل لوحده , وفي كل صفحه نقوم بإدراجهمها ( يعني انه لدينا ملف واحد به الرأس ) و ( ملف واحد به الذيل ) اذا سوف نقوم في اي صفحه بإدراج هذين الملفين في الاعلى والاسفل , وعندما نريد ان نقوم بتغير الرأس او الذيل فإننا نقوم بتغيير الملف الرئيسي الموجود به الرأس او الذيل , وسوف تتغير جميع الصفحات نقره لتكبير أو تصغير الصورة ونقرتين لعرض الصورة في صفحة مستقلة بحجمها الطبيعي . لنرى الان كيفية الادراج .
    الداله require :
    هذه الداله تستخدم لادراج الملفات وطريقة كتابتها كالتالي require( string file )
    , لنأخذ مثال عليها لتوضح الصوره لنا , افتح محرر الاكواد واكتب التالي :
    نقره لتكبير أو تصغير الصورة ونقرتين لعرض الصورة في صفحة مستقلة بحجمها الطبيعي
    قم بحفظ الملف الان بإسم ( word.php ) , افتح ملف جديد من محرر الاكواد واكتب التالي :
    نقره لتكبير أو تصغير الصورة ونقرتين لعرض الصورة في صفحة مستقلة بحجمها الطبيعي
    لن تستغرب اذا كان ناتجنا هو التالي :
    نقره لتكبير أو تصغير الصورة ونقرتين لعرض الصورة في صفحة مستقلة بحجمها الطبيعي
    اذن نستنتج ان الداله require تحتاج الى ملف لكي يكون مدخلها , وعندما ننفذ
    الكود فكأننا كتبنا التالي:
    نقره لتكبير أو تصغير الصورة ونقرتين لعرض الصورة في صفحة مستقلة بحجمها الطبيعي
    يمكن ادراج اي ملف تريد بإي امتداد تريد , ولكن اسمع هذه النصيحه , وادرج دائما ملفات PHP او ملفات HTML , ولكن لا تنسى انه اذا كان الملف HTML فلن يتم تنفيذ كود PHP داخله , يجب ان يكون PHP لينفذ. الان لنرى موقع الاعلى للشركه , وكيف سيتم الادراج , لاحظ الكود التالي :
    الملف header.php
    نقره لتكبير أو تصغير الصورة ونقرتين لعرض الصورة في صفحة مستقلة بحجمها الطبيعي
    الملف footer.php
    نقره لتكبير أو تصغير الصورة ونقرتين لعرض الصورة في صفحة مستقلة بحجمها الطبيعي
    الملف main.php

    نقره لتكبير أو تصغير الصورة ونقرتين لعرض الصورة في صفحة مستقلة بحجمها الطبيعي
    انقر على الصوره لتكبيرها
    ارأيت الان ميزة هذه الداله ؟ واعتقد ان ميزة اعادة استخدام الكود اتضحت الان ايضا , وسوف تتضح لك اكثر في الدوال ( functions ) .
    الداله include :
    هذه الداله لها نفس عمل الداله require تماما , الفرق الوحيد بينهما , هو كيفية اخراج الخطأ , فلو اخطأت في الداله include فسوف يكون الخطأ هو تحذير ويكمل تنفيذ عمل الملف ( Warning ) اما اذا اخطأت في الداله require فسوف يكون الخطأ رئيسي ويتوقف عمل تنفيذ الملف اي الخروج من الكود كاملا ( Fatal Error ) , مثال على خطأ يمكن ان تقع به , ادراج ملف غير موجود , انظر الى الشكل التالي :
    خطأ require :
    اضغط على الصوره لتكبيرها


    نقره لتكبير أو تصغير الصورة ونقرتين لعرض الصورة في صفحة مستقلة بحجمها الطبيعي
    خطأ include :
    اضغط على الصوره لتكبيرها:


    نقره لتكبير أو تصغير الصورة ونقرتين لعرض الصورة في صفحة مستقلة بحجمها الطبيعي
    ملاحظه : نستخدم الطريقه في الامثله اعلى اذا كان الملف يوجد في نفس المجلد , اما اذا كان في مجدل داخلي اسمه include فيكون كالتالي
    ( require(‘include/header.php’) ) وهكذا دواليك , كأنك تتعامل مع اي برنامج اخر لتقوم بتحدد مكان ملف
    لماذا احتاج الى الدوال ( functions ) :
    لو اردنا ان نقوم في كل برنامج لنا بمقارنة عددين مع بعضهما البعض , الن يكون طويلا ان نقوم في كل برنامج بكتابة كود المقارنه ؟ لماذا لا نقوم بوضع هذا الكود في داله , وفقط نقوم بمناداة هذه الداله , ونجعلها تتكفل بجميع المخرجات لدينا , اليس ذلك اسهل ؟ وافضل ؟ اذن سوف نتكلم الان عن الدوال بالتفصيل , لكي ترى فائدة هذه الخاصيه في لغة PHP
    الدوال ( functions ) :
    هل تريد انشاء دالة خاصه بك ؟ كالداله print مثلا ؟ ستتعلم الطريقه هنا ,وسوف نتطرق في هذا الموضوع الى الدوال عدة نقاط وهي كالتالي : مناداة الداله , اخطاء في مناداة الدوال , اسماء وحالات الدوال, كتابة الدوال, مدخلات الدوال , مرجعات من الدوال , ارجاع بيانات من الدوال. لنبدأ بشرح هذه النقاط :
    مناداة الدالة :
    رأيت كثيرا من الدوال خلال الدروس من الاول الى العاشر, منها PRINT ومنها SETTYPE ومنها GETTYPE ومنها REQUIRE و INCLUDE , اليس كذلك ؟ كتابة الدوال تكون كالتالي :
    نقره لتكبير أو تصغير الصورة ونقرتين لعرض الصورة في صفحة مستقلة بحجمها الطبيعي
    اخطاء في مناداة الدوال :
    عندما تقوم بمناداة دالة غير موجوده فسوف يأتيك خطأ كالتالي :
    نقره لتكبير أو تصغير الصورة ونقرتين لعرض الصورة في صفحة مستقلة بحجمها الطبيعي
    ويجب عليك وقتها ان تقوم بملاحظة شيئين , الاول : هل الدالة موجوده او غير موجوده , الثاني : اذا كانت الداله موجوده هل الاسم ممنوع استخدامه ؟ لانه من الطبيعي انه لا يمكنك انشاء داله يكون اسمها print لانها اساسيه في PHP
    اسماء وحالات الدوال :
    هنا يجب عليك ان تعرف ان مناداة الدوال التي تقوم بإنشائها ليست حساسه لحالة الاحرف فالداله function_name() هي نفسها Function_Name() وهي ايضا نفسها الداله FUNCTION_NAME() ولكن الاغلب استخداما بين المبرمجين هو ان تكون اسماء الدوال احرف صغيره , وايضا اسماء الدوال لا يمكن ان تبدأ بأرقام او تكون بإسماء دوال موجوده سابقا في اللغه او قمت بعملها انت
    ولا تنسى ان اسماء المتغيرات تختلف , فالمتغير $name يختلف عن المتغير $NAME , فلا تقم بنسيان الدرس الثالث.
    كتابة الدوال :
    الان لنتعلم كيف نقوم بكتابة داله خاصه بنا , طريقة كتابتها هي كالتالي :
    نقره لتكبير أو تصغير الصورة ونقرتين لعرض الصورة في صفحة مستقلة بحجمها الطبيعي
    الان لنقم بطباعة داله خاصه بنا , نريد ان نقوم بإنشاء دالة تقوم بطباعة العباره ( اهلا وسهلا بكم ) , افتح محرر الاكواد وقم بكتابة التالي :
    نقره لتكبير أو تصغير الصورة ونقرتين لعرض الصورة في صفحة مستقلة بحجمها الطبيعي
    لاحظ ان العباره function يجب ان تقوم بكتابتها اذا اردت ان تقوم بإنشاء داله خاصه بك , وفي الكود بالاعلى لون العباره ( اسود ). هل تحتاج ان اقول لك كيفية استخدام هذه الداله ؟ اكيد انك تعرف , والطريقه هي كالتالي :
    نقره لتكبير أو تصغير الصورة ونقرتين لعرض الصورة في صفحة مستقلة بحجمها الطبيعي
    مدخلات الدوال :
    عندما رأيت الداله include لاحظت انها تحتاج مدخل لكي تعمل بشكل صحيح , اليس كذلك ؟ واعتقد ان بعد الدوال التي سوف تقوم بإنشائها تحتاج الى هذه الخاصيه , اذن كيف تقوم بعملها , نفس طريقة الاولى والاختلاف فقط في التالي :
    نقره لتكبير أو تصغير الصورة ونقرتين لعرض الصورة في صفحة مستقلة بحجمها الطبيعي
    الان تخيل , الداله التي قمنا بعملها , التي تطبع الكلمه اهلا وسهلا , تريد ان تقوم هذه الداله بطباعة اي جمله انت تقوم بإعطائها للداله , كيف تقوم بذلك ؟ لاحظ المثال التالي :
    نقره لتكبير أو تصغير الصورة ونقرتين لعرض الصورة في صفحة مستقلة بحجمها الطبيعي
    طبعا هنا , اذا قمت بإستخدام الداله من غير كتابة مدخل , اي لم تقم بإعطائها قيمه , سوف يكون هناك خطأ , اذا هذه الطريقه يتوجب عليك ان تقوم بتحديد المدخل ايا كان نوعه , لو كنت تريد طباعة رقم سوف تستخدم نفس الدالة ولكن بدل العباره ( داله بها مدخلات ) تقوم بكتابة الرقم و مثال على ذلك ( sayWord( 15 ); ) وسوف تقوم بطباعة الرقم. ماذا لو اردنا ان نجعل اكثر من معطى للداله ؟ هل يمكن ذلك ؟ نعم , اكتب في محرر
    الاكواد التالي :
    نقره لتكبير أو تصغير الصورة ونقرتين لعرض الصورة في صفحة مستقلة بحجمها الطبيعي
    يمكنك جعل عدد لا نهائي من المعطيات للداله , والامر يعود الى طريقتك واحتياجك.
    لم ننتهي بعد , هناك نقطه اخرى , ماذا لو اردت ان يكون احد المعطيات اختياري ؟ مثالنا في الاعلى يفرض علينا ان نقوم بإدخال عبارتين , ماذا لو اردنا ان نجعل عباره اجباريه والاخرى اختياريه , كيف يمكن عمل ذلك ؟ عن طريق تعيين قيمه افتراضيه للمعطى في الداله , اكتب في محرر الاكواد التالي :
    نقره لتكبير أو تصغير الصورة ونقرتين لعرض الصورة في صفحة مستقلة بحجمها الطبيعي
    لنقم الان بعمل تطبيق صغير , في برنامجنا نريد ان يقوم بإدخال رقمين , ايا كانت , ونقوم بمقارنتها لنرى من الاكبر والاصغر , لنقم بذلك معا , افتح محرر الاكواد واكتب التالي :
    نقره لتكبير أو تصغير الصورة ونقرتين لعرض الصورة في صفحة مستقلة بحجمها الطبيعي
    يمكن ان تستخدم العباره IF اوSWITCH او FOR او WHILE داخل الدوال ,
    نصيحه : ( عاملها كأنها برنامج مصغر )
    مرجعات من الدوال :
    هناك نوعان من الدوال , نوع يقوم بإرجاع مخرجات , والاخر يقوم بإرجاع بيانات , سوف نعرف الان النوع الاول , ماذا نعني بإرجاع مخراجات ؟؟؟ كما عملنا في المثال التطبيقي , يكون ارجاع الداله مخرجات اذا كان هناك العباره echo او العباره print او كود HTML
    ارجاع بيانات من الدوال :
    اعني بإرجاع بيانات من الدوال , اي ارجاع قيم , ليست للطباعه بمعنى اصح ونستخدم في هذه الحاله العباره return , في مثالنا التطبيقي , على سبيل المثال نريد ان نعرف ماهو العدد الاكبر لنستخدمه في كود اخر , لنرى كيفية عمله الان , اكتب التالي في محرر الاكواد :
    نقره لتكبير أو تصغير الصورة ونقرتين لعرض الصورة في صفحة مستقلة بحجمها الطبيعي
    ولو اردنا ان نقوم بطباعة العدد الى المتصفح سوف نقوم بالتالي :
    نقره لتكبير أو تصغير الصورة ونقرتين لعرض الصورة في صفحة مستقلة بحجمها الطبيعي
    استخدام ادراج الملفات مع الدوال :
    الان بعد هذا الدرس الطويل جدا , وهذا الكلام الكثير , واعتذر ان قد جئت لكم بالملل نقره لتكبير أو تصغير الصورة ونقرتين لعرض الصورة في صفحة مستقلة بحجمها الطبيعي , ماهو رابط الادراج مع الدوال ؟ الجواب هو التالي : نقوم بجعل جميع دوالنا في ملف لوحدها , ثم نقوم بإدراج هذا الملف الى الملف الرئيسي ونقوم بإستخدام الدوال , لنأخذ مثالا على ذلك , قلنا في البدايه ان نجعل رأس الصفحه في ملف وذيل الصفحه في ملف ثم نقوم بإدراجهما الى صفحاتنا اليس كذلك ؟ هناك طريقه اخرى نستطيع عملها , نقوم بعمل داله جديده اسمها header( $title ) وداله اخرى اسمها footer() ونضع كود HTML داخلها , ونحفظها في صفحه اسمها output.php , وفي كل صفحه نقوم بإدراج الملف output.php ثم نستخدم الدوال التي قمنا بعملها نقره لتكبير أو تصغير الصورة ونقرتين لعرض الصورة في صفحة مستقلة بحجمها الطبيعي . دعني اقوم بطرح مثال اخر , لقد قمت بعمل دوال كثيره ودائما تقوم بحفظها في ملف , وتعلم انك قد تحتاجها في برامجك الاخرى او في اماكن اخرى , فتقوم بإدراج هذا الملف , واعادة استخدام هذا الكود مره اخرى , من غير ان تقوم بكتابة الكود او تقوم بأي مجهود اخر , ولكن اذا كنت تتبع هذه الطريقه فلا تقم بنسيان كتابة التعليقات , حتى لا تنسى عمل دوالك الخاصه

    سؤال على الدرس :
    1 – قم بعمل مقارنة بين عددين تقوم بإدخالها ( الداله ترجع العدد الاكبر ( لا تطبع )
    ) , اذا نسي المستخدم كتابة احد الارقام , فقم بإستخدام قيمه افتراضيه , واذا قام بإدخال كلمه بدل ارقام , تقوم الداله بطباعة ( الرجاء ادخال رقم وليس حرف )
    2 – قم بعمل نموذج المعلومات الشخصيه بإستخدام الدوال الخاصه , ادراج الملفات , واترك لك الحريه للتفكير في الطريقه

    الـــدرس الــقادم :

    تطبيقات على النماذج وعلى الدوال بشكل كامل , حيث نغطي جميع ما قمنا بتعلمه الى الان

  2. #12
    أدارى
    الصورة الرمزية HVIPS4


    تاريخ التسجيل: Jun 2011
    رقم العضوية: 6
    الدولة: Cairo
    المشاركات: 1,979
    HVIPS4 غير متواجد حالياً

    رد: متكامل فى php


    الدرس الثاني عشر: متفرقات وتطبيق على الدروس السابقه

    متطلبات قبل البدء :

    • مراجعة جميع الدروس السابقة , حيث ان هذا الدرس يجمع كل الدروس

    اهداف الدرس :

    • الداله include_once والداله require_once
    • المتغير $PHP_SELF
    • العباره global
    • العباره static
    • تطبيق شامل

    الداله include_once و الداله require_once : تعلمنا في الدرس الحادي عشر ان نستخدم الدالتين ( include ) والداله ( require ) , ونأتي الان الى جزء منها وهي الدالتين include_once و require_once , طريقة عمل هاتين الدالتين نفس عمل الدالتين الاول تماما, نفس طريقة الكتابه ( مطابقه 100 % 100 ) , ولكن هناك فرق صغير بينهما , كما تدل الكلمه ( once ) ومعناها ( مره واحده فقط ) , اننا نستخدم هذه العباره عندما نريد ان نقوم بإدراج ملف مره واحده فقط. فإذا استخدمنا هذه الداله وقمنا بإدراج ملف معين , فلن يتم ادراجه مره اخرى. بعباره اخرى , لو لدينا برنامج صغير وادرجنا داخل هذا البرنامج الملف ( arccn.php ) بإستخدام العباره (
    include_once ) , فلن يتم ادراجه مره اخرى بعكس العباره include. وعندما تقرأ في دليل استخدام للغه فسوف تجد ان هذا هو الفرق الوحيد, وسبب وجود دالتين هو للتأكد من عدم وجود تضارب بين اسماء الدوال , او المتغيرات في البرامج.
    المتغير $PHP_SELF
    المتغير $PHP_SELF هو معرف من قبل اللغه نفسها , ولا يمكنك ان تقوم بتعريف متغير بهذا الاسم, يستخدم هذا المتغير لمعرفة اسم الملف الذي يقام تنفيذه حاليا. فمثلا لو اردنا في نموذج ان نذهب الى نفس الصفحه , فسوف نستخدم المتغير $PHP_SELF بدل
    كتابة اسم الملف. هذا هو استخدام هذا المتغير وسوف نتطرق له في احد برامجنا
    التطبيقية.
    العباره global :
    لنقل ان لدينا متغير, وهذا المتغير نريد ان نستخدمه في عدة ملفات وفي عدة اماكن. من المحتمل انني نسيت ان اخبرك ان المتغير مكانه محدود واعني بذلك , لو عرفنا متغير في ملف معين , فلن يكون هذا المتغير منشىء في الملف الاخر, فيمكننا انشاء مره اخرى واستخدامه بطريقه مختلفه. ولكن في حاله من الحالات نريد ان يكون لدينا متغير ثابت في جميع الصفحات وتذكر ان العباره defined ايضا لن تقوم بعمل هذا الشي, لنقم تحديد نظرتنا , لو عرفنا متغير داخل داله, فلن نستطيع استعمال هذا المتغير خارج الداله. لنأخذ مثال يبين لنا الطريقه. افتح محرر الاكواد واكتب التالي:
    نقره لتكبير أو تصغير الصورة ونقرتين لعرض الصورة في صفحة مستقلة بحجمها الطبيعي
    لاحظ ان المتغير ( name ) لم يتم طباعته, لانها معرف خارج الداله , وليس له علاقه بالمتغير الموجود داخل الدالة ابدا. ونفس الشيء للمتغير ( $lastName ) فلن يتم طباعته في السطر رقم 15 , لانه تم تعريفه داخل الداله. ولكن يمكننا ان نلغي هذا كله , ونجعل متغير يستخدم في جميع الصفحات, بإستخدام العباره global, ويتم كتابتها بالطريقه التاليه:
    نقره لتكبير أو تصغير الصورة ونقرتين لعرض الصورة في صفحة مستقلة بحجمها الطبيعي
    1 – لاحظ هنا اننا قمنا بتعريف المتغير داخل الداله, ومن الطبيعي انه لن يتم طباعته خارجها حتى لو كان يحتوي على قيمه, ولكن مع استخدامنا للعباره global ,استطعنا من عمل ذلك. ويجب عليك ان تلاحظ انه يجب ان تجعل المتغير ( عام ) == ( global )
    ثم بعد ذلك تقوم بتعيين قيمه بداخله ثم الطباعه ان اردت.
    2 – قمنا بطباعة المتغير , ولاحظ انه قام بالطباعه هنا.

    العباره static :

    معنى كلمة static في اللغه الانجليزيه هو ( ثابت ). فعند استخدامنا لهذه العباره قبل المتغير, نضمن ان هذا المتغير سيقوم بالاحتفاظ بالقيمه الموجوده بداخله دائما ( مهما حصل ) الى اخر ما وصلنا , ويستخدم فقط داخل الدوال ( لا تنسى ذلك ) لنلاحظ المثال التالي:
    نقره لتكبير أو تصغير الصورة ونقرتين لعرض الصورة في صفحة مستقلة بحجمها الطبيعي
    هنا نقوم بطباعة المتغير a ثم نقوم بزيادته واحد , اليس ذلك صحيح ؟ ولكن لكما نقوم بمناداة الداله ( test ) مره اخرى , يتم ارجاع قيمة المتغير a الى ( 0 ) , مع اننا نقوم بزيادة المتغير في كل مره نقوم بالطباعه. وسيكون ناتج البرنامج هو التالي:
    نقره لتكبير أو تصغير الصورة ونقرتين لعرض الصورة في صفحة مستقلة بحجمها الطبيعي
    الان لنقم بإستخدام العباره static ونرى الاختلاف , اكتب التالي قبل المتغير a :
    نقره لتكبير أو تصغير الصورة ونقرتين لعرض الصورة في صفحة مستقلة بحجمها الطبيعي
    وعند تشغيل هذا الكود سوف يكون الناتج ايها الزائر الكريم بالطريقه التاليه:
    نقره لتكبير أو تصغير الصورة ونقرتين لعرض الصورة في صفحة مستقلة بحجمها الطبيعي
    ما نلاحظه هنا , ان في كل مره ننادي فيها الداله , في اخرها نقوم بزيادة المتغير بالعدد واحد , وعند منادة الداله مره اخرى , سوف يكمل من اخر عدد وصل اليه المتغير. وهذه هي فائدة العباره static في اللغه PHP.

    تطبيق شامل :

    ترددت كثيرا في اختيار برنامج نقوم بتطبيقه , حيث اني اريد ان اقوم بشمل جميع ما تعلمناه في الدروس السابقه, وعند انتهاء التفكير قررت ان يكون تطبيقنا ( اختبار مصغر ). وان شاء الله يكون شاملا لجميع ما قمنا بتعمله, ولا تغضب عندما نقوم بنسيان احد النقاط الصغيره, فتأكد انه في تطبيق اخر سنتطرق لها.
    فكرة عمل البرنامج :
    اولا يقوم المستخدم بإدخال معلوماته الشخصيه بعد ذلك نعرض له عدد من الاسئله , ثم في النهايه نقوم بعرض النتيجه, انظر الى الصوره التاليه :
    نقره لتكبير أو تصغير الصورة ونقرتين لعرض الصورة في صفحة مستقلة بحجمها الطبيعي
    لنقم بالتفكير في متطلباتنا , وماهي الملفات التي نحتاجها :
    الوصف الملف هنا نضع
    جميع دوال التنسيق للصفحات , مثل رأس الصفحه وذيلها , نماذج ادخال
    المعلومات وغيرها ونضعه داخل مجلد اسمه include output.php هنا نقوم
    بوضع دوال الاسئله والاجوبه , لكي ننتهي من عناء اعادة كتابة الكود
    ونضعه داخل المجلد include quiz_fun.php هنا
    يضع المستخدم معلوماته الشخصيه ويكون في المجلد الرئيسي info.php هنا
    نقوم بعرض صفحة الاسئله ويكون في المجلد الرئيسي quiz1.php صفحة
    النتائج ويكون في المجلد الرئيسي result.php لنبدأ الان بكتابة البرنامج ونحاول ان نفهمه خطوه خطوه , افتح محرر الاكواد واكتب التالي ثم احفظه في ملف اسمه output.php :
    اضغط على الصوره لتكبيرها

    نقره لتكبير أو تصغير الصورة ونقرتين لعرض الصورة في صفحة مستقلة بحجمها الطبيعي
    قمنا هنا بعمل رأس الصفحه وذيل الصفحه , ولو تلاحظ اننا استخدمنا الدوال لعمل ذلك , بحيث ان في كل صفحه لا نكرر كتابة الرأس والذيل وانما فقط نقوم بإدراج الملفات , وهي تقوم بالباقي. ولاحظ اننا ايضا استخدمنا مدخلات للدوال , بحيث يمكننا تغيير عنوان الصفحه وغيرها في اي وقت نريد. الان في صفحتنا ادخال المعلومات , نريد ان نقوم بإنشاء نموذج ليتمكن المستخدم من ادخال معلوماته الشخصيه, ليتمكن من الدخول الى الاختبار , اذن هو نموذج , سنضعه في ملف output.php , اذن ارجع الى الملف واكتب التالي:
    اضغط على الصوره لتكبيرها

    نقره لتكبير أو تصغير الصورة ونقرتين لعرض الصورة في صفحة مستقلة بحجمها الطبيعي
    لاحظ هنا اننا جعلنا النموذج يذهب الى الصفحه quiz.php , ايه انه ضروري ان يقوم المستخدم بكتابة معلوماته الشخصيه قبل دخول الاختبار. الان لنقم بعمل صفحة تسجيل المعلومات. الان انشئ ملف جديد اسمه info.php, واكتب بداخله الكود التالي:
    اضغط على الصوره لتكبيرها

    نقره لتكبير أو تصغير الصورة ونقرتين لعرض الصورة في صفحة مستقلة بحجمها الطبيعي
    في بداية هذا الكود قمنا بإدراج الملف output.php لان بداخله الاكواد التي نحتاجها الى تشغيل الصفحه. ولاحظ اننا استخدمنا الدوال فقط, ولم نقم بإستخدام غيرها. الان نحتاج ان نتأكد هل المستخدم ادخل جميع البيانات ام لا ؟ لاننا قلنا انه اذا لم يدخل جميع البيانات فلا يسمح له بأخد الاختبار. اذن قم بإنشاء ملف اسمه quiz_fun.php واكتب بداخله الداله التاليه :
    نقره لتكبير أو تصغير الصورة ونقرتين لعرض الصورة في صفحة مستقلة بحجمها الطبيعي
    هنا نقوم بالتحقق من مدخلات النموذج , اذا كانت جميعها مدخله , فنرجع القيمه true , واذا كانت هناك مدخلات ناقصه فسوف نرجع القيمه false. الان انشئ ملف اسمه quiz.php واكتب بداخله التالي:
    نقره لتكبير أو تصغير الصورة ونقرتين لعرض الصورة في صفحة مستقلة بحجمها الطبيعي
    الكود واضح وبسيط هنا , ادرجنا الملفات في البدايه, ثم نقوم بإستخدام دالة التحقق من المدخلات, اذا ارجعت القيمه true نبدأ الاختبار , واذا ارجعت false لا نبدأ الاختبار. الان نريد ان نقوم بعرض الاسئله , سوف نقوم بكتابة سؤالين فقط , لكي لا نقوم بإطالة الدرس, ارجع الى الملف output.php واكتب الداله التاليه :

    اضغط على الصور لتكبيرها

    نقره لتكبير أو تصغير الصورة ونقرتين لعرض الصورة في صفحة مستقلة بحجمها الطبيعي

    نقره لتكبير أو تصغير الصورة ونقرتين لعرض الصورة في صفحة مستقلة بحجمها الطبيعي
    لاحظ اننا استخدمنا هنا الطريقة GET لارسال البيانات, لكي تفهم الطريقتين بشكل صحيح, ارجع الان الى الملف quiz.php , وقم اضافة السطر التالي:
    نقره لتكبير أو تصغير الصورة ونقرتين لعرض الصورة في صفحة مستقلة بحجمها الطبيعي
    قم بتشغيل الملف info.php الان , وقم بتجربة برنامجك , وسوف تجد انك ستصل الى الصفحة التاليه :
    نقره لتكبير أو تصغير الصورة ونقرتين لعرض الصورة في صفحة مستقلة بحجمها الطبيعي
    قربنا من النهاية. نريد الان ان نقوم بمعرفة اذا قام المستخدم بكتابة الاجابات الصحيحه ام لا, اذن لنقم بإنشاء متغير اسمه mark نضع به العلامات ونريد ان نستخدمه في جميع الصفحات, اذن سنحتاج العباره global , ارجع الى الملف quiz_fun.php واضف السطرين التاليين :
    نقره لتكبير أو تصغير الصورة ونقرتين لعرض الصورة في صفحة مستقلة بحجمها الطبيعي
    بقيت الان الصفحه الاخيره, ولن اخذ وقت طويل في شرحها, فسأضعها لك , واعتقد انه الان لديك الامكانيه لفهم الكود الموجود بداخلها :
    نقره لتكبير أو تصغير الصورة ونقرتين لعرض الصورة في صفحة مستقلة بحجمها الطبيعي
    ملاحظه : جميع القيم التي تكون قادمه عن طريق النماذج , تكون على شكل نصوص (string ) ولهذا استخدمنا التحويل من نص الى رقم , كما تعلمنا سابقا , لانه لن نستطيع ان نقوم بمقارنه صحيحه اذا كان الطرفين من غير النوع , ولا تنسى انه يمكنك استخدام المعامل ( === ) , لمعرفة ان الطرفين متساويين ومن نفس النوع

    سؤال على الدرس :
    1 – قم بالتعديل على برنامج الاختبار , حيث يكتب لك في الصفحه الاخيره معلومات المستخدم الذي دخل الاختبار , الاسم والبريد الالكتروني مع الدرجه التي حصل عليها المستخدم في الاختبار ( مساعده : استخدم global )

    الـــدرس الــقادم :

    سوف نتعرف في الدرس القادم على نبذه عامه عن المصفوفات وانواعها , وشرحها بطريقه مفصله , لانها تعتبر نقطة تحور كبيره في هذه اللغه

  3. #13
    أدارى
    الصورة الرمزية HVIPS4


    تاريخ التسجيل: Jun 2011
    رقم العضوية: 6
    الدولة: Cairo
    المشاركات: 1,979
    HVIPS4 غير متواجد حالياً

    رد: متكامل فى php


    الدرس الثالث عشر: المصفوفات الرقميه

    متطلبات قبل البدء :

    • لا يوجد

    اهداف الدرس :

    • نظره عامه عن المصفوفات
    • المصفوفات في لغة PHP
    • لماذا المصفوفات
    • انواع المصفوفات
    • المصفوفات الرقميه
    • انشاء المصفوفات الرقميه
    • طباعة المصفوفات الرقميه

    نظره عامه عن المصفوفات : تعتبر المصفوفات انجاز كبير في لغات البرمجه, مهلا ماهي المصفوفات اولا ؟ لنقم بشرحها خارج نطاق الكمبيوتر, لو قلنا ان لديك اليوم وليمه وكثير من الاصدقاء والاقارب سيقومون بزيارتك, ذهبت الى البقاله اشتريت ببسي بعدد الموجودين , واحد تلو الاخر , فاضريت الى الاشياء التاليه, ان تحمل اكياسا كثيره اولا , دفع مبلغ اكثر ثانيا اليس ذلك صحيحا ؟ ولكن لو قمت بشراء كرتون واحد بسعر اقل وسهل الحمل , فتكون وفرت على نفسك الكثير, ترجم الان ما قلته لك الى عالم الكمبيوتر والمصفوفات, المصفوفات مثل المتغيرات , مكان نقوم بوضع قيمه به, اي المصفوفه عباره عن متغير توضع به قيم عديدة, والفرق ان المتغير يحوي قيمه واحده ولكن المصفوفه تحتوي على قيم كثيره , وبالاحرى غير محدوده, اذن لنقل الان ان المصفوفات تعتبر انجاز كبير في لغات البرمجه, وتعتبر اللغه التي لا تقوم بدعمها ناقصه او ليست جيده. واعتقد ان مثال الوليمه قد وضح لك لماذا المصفوفات ( المبلغ نعني به الذاكره المستخدمه ) , ( الحمل نعني بها طريقة وضع القيم ).
    المصفوفات في لغة PHP :
    دعمت المصفوفات في لغة PHP من فترة ليست بالقريبه, وتستخدم بشكل كبير سواء في
    PHP وغيرها , ومن دعم اللغه الى المصفوفات توجد هناك عشرات الدوال الخاصه بالمصفوفات مثل النسخ والالغاء والمسح والطباعه و و و …., حتى ان بعض دوال لغة PHP تقوم بإعطاءك الناتج الذي تريد على شكل مصفوفه ومرورا بالاستعلام من قواعد البيانات فسوف يكون الناتج على شكل مصفوفه ايضا, ولكن كل هذا الحديث سابق لاوانه , فسوف نقوم في البدايه بمعرفة المصفوفات وانواعها والتعامل معها, ثم نأتي الى دوالها وخواصها في دروس قادمه ان شاء الله.
    لماذا المصفوفات :
    قد تتسائل , عندنا متغيرات لماذا نستخدم المصفوفات , سوف تجيب على هذا السؤال بنفسك عندما تستخدم المصفوفات , تخيل ان لديك اسماء اشخاص كثيرين داخل مصفوفه وتريد ان تقوم بترتيب هذه الاسماء من ناحية الاحرف ؟ فهل يمكن فعل ذلك بالمتغيرات ؟ ولكن مع المصفوفات بكتابة كود من 4 احرف يمكن فعل ذلك , غير مسألة الطباعه وغيرها الكثير , لا استطيع حصرها لك الان ولكن سوف توضح كلما تكلمنا عن المصفوفات اكثر.
    انواع المصفوفات :
    يوجد في لغة PHP نوعان من المصفوفات , مصفوفات رقميه, ومصفوفات حرفيه , في البدايه سوف نقوم بتعلم المصفوفات الرقميه لانها الاساس , وفي الدرس القادم سوف نعرف المصفوفات الحرفيه , بعد ذلك يسكون لديك الاختيار بين استعمال الحرفيه او الرقميه ( جميعهم يؤدون نفس العمل ).
    المصفوفات الرقميه :
    اعني بالمصفوفات الرقميه , المصفوفات التي يتم استعمالها عن طريق الارقام, اي عندما اريد قيمه من هذه المصفوفه فسوف اقوم بالاستعلام عنها بإستخدام الرقم الذي يدل عليها, اذن نعرف ان لكل قيمه في المصفوفه رقم يدل عليها وغالبا يبدأ من العدد 0 وطبعا يمكن ان تقوم بتغير ذلك. لنجعل لها اسامي وهو الافضل , القيم الموجوده بالمصفوفه نسميها عناصر, والارقام الموضوع لكل قيم في المصفوفه نسميها فهرس , او المفتاح.
    انشاء المصفوفات الرقميه :
    دعني اوضح لك مفهوم المصفوفه اكثر , انظر الى الصوره التاليه :
    نقره لتكبير أو تصغير الصورة ونقرتين لعرض الصورة في صفحة مستقلة بحجمها الطبيعي
    لدينا الان منتجات في بقالتنا , فبدل من ان نكتب 5 متغيرات بعدد المنتجات , نقوم بإنشاء مصفوفه اسمها منتجات , ونضع داخلها اسماء منتجاتنا , وضحت الصوره ؟ لنقم مع بضعنا انشاء هذه المصفوفه , افتح محرر الاكواد وقم بكتابة التالي :
    نقره لتكبير أو تصغير الصورة ونقرتين لعرض الصورة في صفحة مستقلة بحجمها الطبيعي
    فبنظرك الان , ماهو الافضل طريقة المصفوفه ام الطريقه التاليه :
    نقره لتكبير أو تصغير الصورة ونقرتين لعرض الصورة في صفحة مستقلة بحجمها الطبيعي
    سأترك الاجابه لك نقره لتكبير أو تصغير الصورة ونقرتين لعرض الصورة في صفحة مستقلة بحجمها الطبيعي
    يوجد لدينا طريقه اخرى لكتابة المصفوفات , وكل منهما يؤدي نفس العمل , في بعض الاحيان تحتاج ان تعرف رقم القيم في المصفوفه , واحيانا لا تحتاج الى ذلك , وكل واحد منهما له استخدام , ولكن ما يمكن فعله بواحده فمأكد 100%100 انك تستطيع القيام به مع الاخرى, انظر الطريقه الثانيه الان :
    نقره لتكبير أو تصغير الصورة ونقرتين لعرض الصورة في صفحة مستقلة بحجمها الطبيعي
    هي نفسها الطريقه الاولى عند استخدامنا للعباره array , ولكن هنا نقوم بتحدد الاماكن بأنفسنا , ونعرف عند انشاء المصفوفه مفتاح كل عنصر بها. ولك الحريه بإستخدام واحده من الطريقتين. ( العباره array معرفه مسبقا داخل لغة PHP ولا يمكن استخدامها , لاتنسى ذلك ).
    لنرى مثال اخر الان يفضل استخدام النوع الثاني على النوع الاول, نريد ان نقوم بتعبة عناصر المصفوفه بالرقم 1 الى الرقم 5 , كيف نقوم بفعل ذلك ؟؟؟ افتح محرر الاكواد واكتب التالي :
    نقره لتكبير أو تصغير الصورة ونقرتين لعرض الصورة في صفحة مستقلة بحجمها الطبيعي
    لا تنسى ان طريقة التعامل مع المصفوفات نفسها مع المتغيرات , فلو اردنا ان نضع مصفوفه منشئه مسبقا في مصفوفه اخرى سوف نستخدم المعامل ( = ) , انظر المثال التالي:
    نقره لتكبير أو تصغير الصورة ونقرتين لعرض الصورة في صفحة مستقلة بحجمها الطبيعي
    ملاحظه : يمكننا وضع اي نوع من البيانات داخل المصفوفات, سواء نصوص , او حروف , او ارقام وغيرها
    ولو اردنا تغيير قيمة العنصر الثاني في المصفوفه فسوف نقوم بالتالي :
    نقره لتكبير أو تصغير الصورة ونقرتين لعرض الصورة في صفحة مستقلة بحجمها الطبيعي
    طباعة المصفوفات الرقميه :
    قم بإنشاء مصفوفه وقم بطباعتها كالمتغير , ماذا ستلاحظ ؟؟ لا يمكنك طباعتها , وسوف تجد ان ناتج الطباعه هو array فقط. اذن كيف نقوم بطباعة المصفوفه ؟ نقوم بطباعتها بالوصول الى كل عنصر على حده وطباعته لوحده , انظر المثال التالي :
    نقره لتكبير أو تصغير الصورة ونقرتين لعرض الصورة في صفحة مستقلة بحجمها الطبيعي
    لو فكرت قليلا , ستلاحظ ان الاسطر تتكرر نفسها , والذي يتغير فقط المفتاح , اذن نستطيع ان نستخدم دالة تكرار لتقوم بعمل الطباعه بدلا من ان نقوم بكل سطر على حده , اكتب في محرر الاكواد التالي :
    نقره لتكبير أو تصغير الصورة ونقرتين لعرض الصورة في صفحة مستقلة بحجمها الطبيعي
    استطعنا طباعة العناصر لاننا نعرف كم قيمه موجوده لدينا بالمصفوفه ؟ ولكن لو لم نعرف كم عدد القيم , فماذا نفعل ؟ سهل جدا , نستخدم الداله count , وتقوم هذه الداله بإخبارك كم عنصر موجود لديك بالمصفوفه, انظر التالي :
    نقره لتكبير أو تصغير الصورة ونقرتين لعرض الصورة في صفحة مستقلة بحجمها الطبيعي
    الان لنقم بطباعة المصفوفه التي لا نعلم عددها , كيف نفعل ذلك ؟؟ لاحظ ان في الداله for نقول اطبع لنا العناصر الى ان يصل عدد المتغير i الى اصغر من 3 , والعباره count اخرجت لنا الرقم 3 , اذن نجعل شرطنا في طباعة المصفوفه الى ان يكون العدد اقل من عدد العناصر, اكتب في محرر الاكواد التالي :
    نقره لتكبير أو تصغير الصورة ونقرتين لعرض الصورة في صفحة مستقلة بحجمها الطبيعي
    هل وضحت الان طريقة عمل المصفوفت الرقميه , لا تخف , رأيت كثيرا من اصدقائي لا يحبون المصفوفات او يتعقدون منها وعند التركيز عليها يتقنونها , وهي سهله جدا , فقط اقرأ الدرس جيدا واذا لم تفهم اقرأه مره اخرى , واذا استصعب عليك ارسل لي بريدا الكترونيا وسوف يسعدني ان اوضح لك النقطه التي لم تفهمها, ولكن تذكر انه يجب ان تتقن المصفوفات جيدا , فهي تعتبر شي رهيب في لغة البرمجه وسوف تساعدك كثيرا عندك كاتابة برامجك في المستقبل.
    سؤال على الدرس : 1 – ارجع الى الدرس التاسع: انواع النماذج وطريقة كتابتها و الدرس العاشر: التحقق من وطباعة محتوى النماذج وقم بتعديل الملفات لتستطيع طباعة محتويات المتغير SKILL , اذا تتذكر فقد قلنا انه مصفوفه , والان تعرف ماهي المصفوفات نقره لتكبير أو تصغير الصورة ونقرتين لعرض الصورة في صفحة مستقلة بحجمها الطبيعي

    الـــدرس الــقادم :

    سوف نتعرف في الدرس القادم على المصفوفات الحرفيه , وسنقوم بالتكلم عنها بالتفصيل

  4. #14
    أدارى
    الصورة الرمزية HVIPS4


    تاريخ التسجيل: Jun 2011
    رقم العضوية: 6
    الدولة: Cairo
    المشاركات: 1,979
    HVIPS4 غير متواجد حالياً

    رد: متكامل فى php


    الدرس الرابع عشر: المصفوفات الحرفيه

    متطلبات قبل البدء :

    • مراجعة الدرس الثالث عشر: المصفوفات الرقميه

    اهداف الدرس :

    • المصفوفات الحرفيه
    • انشاء المصفوفات الحرفيه
    • التحكم في المصفوفه الحرفيه
    • طباعة المصفوفات الحرفيه
    • المصفوفات ثنائية الابعاد
    • المصفوفات متعددة الابعاد

    المصفوفات الحرفيه : اليوم سوف نتكلم عن النوع الثاني من المصفوفات وهي المصفوفات الحرفيه, وتختلف المصفوفات الحرفيه عن المصفوفات الرقميه من الناحيه التاليه, فهارس او مفاتيح المصفوفات الرقيمه تكون ارقام, اما المصفوفات الحرفيه فمفاتيحها او فهراسها تكون نصوص, قد تتسائل لماذا نستخدم المصفوفات الحرفيه, في كثير من الاوقات تعتبر المصفوفات الحرفيه مفيده, من حيث الترتيب ومن حيث الاستخدام, وتأكد انها وضعت لكي يسهل موضوع كتابة المصفوفات وليس لتعقيدها, تخيل مصفوفتنا التي تحتوي على المنتجات في الدرس السابق, لو اردنا ان نضع كمية كل منتج موجود لدينا , فلن يمكننا فعل ذلك بطريقة المصفوفات الرقميه بسهوله , ولكن المصفوفات الحرفيه سوف تكون سهله جدا علينا.
    انشاء المصفوفات الحرفيه :
    لنقم بعمل مثالنا السابق ولكن نريد ان نقوم بوضع كمية كل منتج لدينا في المصفوفه , شاهد المثال التالي:
    نقره لتكبير أو تصغير الصورة ونقرتين لعرض الصورة في صفحة مستقلة بحجمها الطبيعي
    لكن لو لاحظنا في المصفوفات الرقميه , فالذي يمكننا فعله هو هكذا ,
    نقره لتكبير أو تصغير الصورة ونقرتين لعرض الصورة في صفحة مستقلة بحجمها الطبيعي
    لاحظت الفرق الان ؟ لاحظ هنا ان العنصر ( element ) هو كمية كل منتج , والفهرس (index ) هو اسم المنتج , على عكس الحرفيه , فكان الفهرس ارقام والعنصر هو المنتج.
    التحكم في المصفوفه الحرفيه :
    تعلمنا في السابق ان لو اردنا ان نتحكم في المصفوفات الرقميه سوف نستخدم اسم المصفوفه , ثم رقم الفهرس. بالطريقه التاليه :
    نقره لتكبير أو تصغير الصورة ونقرتين لعرض الصورة في صفحة مستقلة بحجمها الطبيعي
    اليس ذلك صحيحا ؟ ولكن كيف يمكن عمل ذلك عن طريق المصفوفات الحرفيه ؟ او ماهو النظير في المصفوفات الحرفيه ؟ يمكننا فعل ذلك بالطريقه التاليه:
    نقره لتكبير أو تصغير الصورة ونقرتين لعرض الصورة في صفحة مستقلة بحجمها الطبيعي
    واذا اردت ان تقوم بتغيير واحد من العناصر , فسوف تكون بنفس طريقة المصفوفات الرقميه , لاحظ التالي :
    نقره لتكبير أو تصغير الصورة ونقرتين لعرض الصورة في صفحة مستقلة بحجمها الطبيعي
    وايضا يمكننا انشاء المصفوفه بالطريقه التاليه :
    نقره لتكبير أو تصغير الصورة ونقرتين لعرض الصورة في صفحة مستقلة بحجمها الطبيعي
    طباعة المصفوفات الحرفيه :
    كما للمصفوفات الرقميه طريقة كتابه بإستخدام دوال التكرار, يوجد دالة تكرار خاصه بالمصفوفات الحرفيه, ويمكن ايضا استخدامها للمصفوفات الرقميه وتدعى هذه الداله ( foreach ) وطريقة كتابتها كالتالي:
    نقره لتكبير أو تصغير الصورة ونقرتين لعرض الصورة في صفحة مستقلة بحجمها الطبيعي
    يوجد طريقتان لكتابة المصفوفات الحرفية, لنأخذ الاولى الان لنقل الان اننا نريد ان نقوم بطباعة منتجاتنا في اول مثال وكمياتها , افتح محرر الاكواد واكتب الكود التالي :
    نقره لتكبير أو تصغير الصورة ونقرتين لعرض الصورة في صفحة مستقلة بحجمها الطبيعي
    وناتجنا هو التالي:
    نقره لتكبير أو تصغير الصورة ونقرتين لعرض الصورة في صفحة مستقلة بحجمها الطبيعي
    و الطريقه الثانيه لطباعة المصفوفات هي بإستخدام الداله ( while ) واستخدام الداله (
    each ) وتكون كالتالي :
    نقره لتكبير أو تصغير الصورة ونقرتين لعرض الصورة في صفحة مستقلة بحجمها الطبيعي
    لنأخذ مثال عليها الان, افتح محرر الاكواد وقم بعمل التالي:
    نقره لتكبير أو تصغير الصورة ونقرتين لعرض الصورة في صفحة مستقلة بحجمها الطبيعي
    قم بإختيار الطريقة التي تحب , فكلها تؤدي الى نفس الغرض.
    المصفوفات ثنائية الابعاد :
    المصفوفات ثنائية الابعاد نعني بها , مصفوفه يوجد بداخلها مصفوفه اخرى, لا ادري كيف اقوم بشرحها لك عزيزي الزائر , ولكن انظر الى المثال التالي واتمى ان توضح لك الصوره ,
    نقره لتكبير أو تصغير الصورة ونقرتين لعرض الصورة في صفحة مستقلة بحجمها الطبيعي
    لنحاول كتابة هذه المصفوفه معا مره بالمصفوفات الرقميه , ومره بالمصفوفات الحرفيه , افتح محرر الاكواد وقم بكتابة التالي:
    مصفوفات ثنائية ابعاد رقميه:
    نقره لتكبير أو تصغير الصورة ونقرتين لعرض الصورة في صفحة مستقلة بحجمها الطبيعي
    طريقة طباعة مصفوفه ثنائية ابعاد رقميه:
    نقره لتكبير أو تصغير الصورة ونقرتين لعرض الصورة في صفحة مستقلة بحجمها الطبيعي
    لماذا استخدمنا دالتين تكرار من النوع ( for ) ؟ وذلك لانها ثنائية ابعاد ( مصفوفه وبداخلها مصفوفه ) , فادالة التكرار الاول ( للصف ) والداله الثانيه ( للعمود ), لنرى الان كيفية كتابتها بطريقة المصفوفات الحرفيه, افتح محرر الاكواد واكتب التالي:
    مصفوفات ثنائية ابعاد حرفيه:
    نقره لتكبير أو تصغير الصورة ونقرتين لعرض الصورة في صفحة مستقلة بحجمها الطبيعي
    طريقة طباعة مصفوفه ثنائية ابعاد حرفيه:
    نقره لتكبير أو تصغير الصورة ونقرتين لعرض الصورة في صفحة مستقلة بحجمها الطبيعي
    المصفوفات متعددة الابعاد:
    اعني بالمصفوفات المتعددة الابعاد, مثل ثلاثية , رباعية , خماسيه, على حسب تعقيدك سوف تأتي المتعدده, ( يقولون ان المعقد الذي يستخدم اكثر من 2 ) نقره لتكبير أو تصغير الصورة ونقرتين لعرض الصورة في صفحة مستقلة بحجمها الطبيعي ولن اقوم هنا بشرحها او شرح طريقة طباعتها , فنفسها نفس المصفوفه الثنائيه, وقس على ذلك ولكن انظر الى هذا المثال , وبه مصفوفه ثلاثية ابعاد , تأمل بها , واذا فهمت نقظت المصفوفه الثنائيه الابعاد جيدا سوف تقوم بفهم المصفوفه المتعدده ايا كانت.
    نقره لتكبير أو تصغير الصورة ونقرتين لعرض الصورة في صفحة مستقلة بحجمها الطبيعي
    سؤال على الدرس : 1 – لا يوجد

    الـــدرس الــقادم :

    سوف نتعرف في الدرس القادم على دوال المصفوفات , وامثله كثيره عليها , لكي تتحكم في قوى المصفوفات من الالف الى الياء

  5. #15
    أدارى
    الصورة الرمزية HVIPS4


    تاريخ التسجيل: Jun 2011
    رقم العضوية: 6
    الدولة: Cairo
    المشاركات: 1,979
    HVIPS4 غير متواجد حالياً

    رد: متكامل فى php


    الدرس الخامس عشر: دوال المصفوفات

    متطلبات قبل البدأ :

    • مراجعة الدرس الثالث عشر: المصفوفات الرقميه
    • مراجعة الدرس الرابع عشر: المصفوفات الحرفيه

    اهداف الدرس:

    • ترتيب المصفوفات ( Sorting )
    • اعادة ترتيب المصفوفات ( Reordering )
    • استكشاف المصفوفات ( Navigation )
    • تعداد المصفوفات ( Counting )
    • الداله array_walk


    ترتيب المصفوفات ( Sorting ) :
    نحتاج كثيرا الى ان نقوم بترتيب المصفوفات حسب الاسم , العمر , الميلاد وغيرها , مثل ما ترى في بعض محركات البحوث او مكتبات البرامج , حيث ان لديك خيار يسمح لك بالترتيب كيفما تريد, ولكن نريد ان نعرف كم يتم ذلك , وماهي الدوال المستخدمه في ذلك, يوجد نوعان من الترتيب, اما ترتيب مصفوفه احادية الابعاد, او مصفوفه متعددة الابعاد, بالنسبه للاولى فهي تعتبر سهله, ولكن الاخرى تعتبر اصعب وتحتاج الى تركيز, لكن لا تخف سوف نحاول ان نبسطها قدر الامكان, لنبدأ بالمصفوفات الاحادية الابعاد:

    الترتيب طبيعيا
    الداله sort() :
    تستخدم هذه الداله لترتيب الكود حسب الاسبقيه ( للمصفوفات الرقميه ) , ونعني بذلك من الاصغر الى الاكبر, في حالة الاحرف ( ا , ب , ت ….. ي ) وفي حالة الارقام ( 0 , 1 , 2 ) وتعتبر هذه الداله حساسه لحالة الاحرف, اي الحرف ( A ) اصغر من الحرف ( Z ) ولكن الحرف ( Z ) اصغر من الحرف ( a ), افتح محرر الاكواد وقم بكتابة التالي:
    نقره لتكبير أو تصغير الصورة ونقرتين لعرض الصورة في صفحة مستقلة بحجمها الطبيعي
    وسوف يكون ناتجنا هو التالي:
    نقره لتكبير أو تصغير الصورة ونقرتين لعرض الصورة في صفحة مستقلة بحجمها الطبيعي
    الداله asort() والداله ksort() :
    اذا كنت تستخدم المصفوفات الحرفيه, فهنا تجد مبتغاك, ونستخدم دوال مختلفه عن الرقميه , لاننا في المصفوفات الحرفيه نحتاج الى العنصر والفهرس ليتم ترتيبهما مع بعضهما البعض , ولكن في الرقميه نحتاج الى العنصر فقط. نستخدم الداله asort ونقوم بترتيبها حسب العنصر, ولكن في الداله ksort فسوف نقوم بالترتيب حسب الفهرس او المفتاح, افتح محرر الاكواد وقم بكتابة التالي:
    نقره لتكبير أو تصغير الصورة ونقرتين لعرض الصورة في صفحة مستقلة بحجمها الطبيعي
    وسوف يكون ناتجنا هو التالي:
    نقره لتكبير أو تصغير الصورة ونقرتين لعرض الصورة في صفحة مستقلة بحجمها الطبيعي

    الترتيب العكسي
    رأيت ان الداله sort و ksort و asort تقوم بترتيب العناصر من الاصغر الى الاكبر, ماذا لو اردنا ان نقوم بالترتيب من الاكبر الى الاصغر, كيف سنقوم بفعل ذلك ؟ نستخدم نظائر الدوال التي قمنا بمعرفتها قبل قليل وهي rsort و krsort و arsort وسوف تقوم بالتريب بشكل عكسي, لا تحتاك ان ادعم لك الدوال بالامثله , فقط قم باستبدال دالة الترتيب في الامثله بالاولى بالداله ( rsort ) في حالة المصفوفه الرقميه, او استبدل دالة الترتيب في مثال المصفوفات الحرفيه بأحدى الدالتين ( arsort ) او ( krsort )
    اعادة ترتيب المصفوفات ( Reordering ) :
    في بعض الحالات تريد ان تقوم بترتيب المصفوفات بطريقه معينه, مثل لو لديك مصفوفه بها الاعداد ( 1 , 2 , 3 ) وتريد ان تقوم بترتيبها بالطريقه ( 3 , 1 , 2 ) , فيمكن فعل ذلك بلغة PHP وفي هذا القسم سوف نتعلم كيفية القيام بهذه الخصائص.
    الداله shuffle() :
    تقوم هذه الداله بترتيب عناصر المصفوفه عشوائيا , والطريقه لقيام بالترتيب عشوائيا هي كالتالي, افتح محرر الاكواد وقم بكتابة التالي:
    نقره لتكبير أو تصغير الصورة ونقرتين لعرض الصورة في صفحة مستقلة بحجمها الطبيعي
    لو قمت بتشغيل هذا البرنامج, سوف تلاحظ ان في كل مره تقوم بها بتحديث الصفحه او اعادة التشغيل , سترى الترتيب يختلف, قم بتجربة البرنامج وستعرف ما اعنيه
    الداله array_reverse() :
    تقوم هذه الداله بإنشاء مصفوفه جديده ولكن العناصر تكون بترتيب عكسي , لاحظ المثال التالي:
    نقره لتكبير أو تصغير الصورة ونقرتين لعرض الصورة في صفحة مستقلة بحجمها الطبيعي
    والناتج من هذه الداله هو التالي:
    نقره لتكبير أو تصغير الصورة ونقرتين لعرض الصورة في صفحة مستقلة بحجمها الطبيعي
    الداله array_push() :
    تقوم هذه الداله بإضافة عنصر جديد في اخر المصفوفه, لاحظ المثال التالي:
    نقره لتكبير أو تصغير الصورة ونقرتين لعرض الصورة في صفحة مستقلة بحجمها الطبيعي
    الداله array_pop() :
    هذه الداله عكس الداله array_push وهي تقوم بحذف اخر عنصر في المصفوفه مع ارجاعه, واعني بإرجاعه ان عند استخدام هذه الداله سوف تقوم بأعطائك اي متغير تم حذفه, وهذا هو الفرق بينها, لاحظ المثال التالي:
    نقره لتكبير أو تصغير الصورة ونقرتين لعرض الصورة في صفحة مستقلة بحجمها الطبيعي

    استكشاف المصفوفات ( Navigation ) :

    في اي مصفوفه تقوم بإنشائها , يوجد لدينا مؤشر يقوم بالاشاره على العنصر الموجود لديه الان, فتارة يكون المؤشر في العنصر الاول وتارة في العنصر الثاني,, ولكن لا يمكننا التحكم في هذا المؤشر اساسا, بل يمكننا استخدام بعض الدوال تساعدنا في التحكم به, فلو قمت بإنشاء داله الان ووضعت بها بعض العناصر فسوف يكون المؤشر في اول عنصر في المصفوفه, لنرى الان بعض دوال مؤشر المصفوفه لنقوم بإستخدامها في برامجنا لاحقا.
    الداله current() :
    تستخدم هذه الداله لاعطائنا مكان المؤشر الحالي, وطريقة الاستخدام كالتالي, افتح محرر الاكواد وقم بكتابة الكود:
    نقره لتكبير أو تصغير الصورة ونقرتين لعرض الصورة في صفحة مستقلة بحجمها الطبيعي
    الداله each() :
    تقوم هذه الداله بإرجاع العنصر الحالي ثمالتقدم خطوه واحده الى الامام. each( $array )
    الداله next() :
    تقوم هذه الداله بنفس عمل الداله each ولكن الفرق بينهما ان هذه الداله تقوم بالتقدم خطوه واحده الى الامام ثم ارجاع المتغير الذي وصلت اليه. next( $array )
    الداله reset() :
    عمل هذه الداله بسيط, وهي تقوم بإرجاع المتغير الى بداية المصفوفه, اي كأنك قمت بعمل المصفوفه من جديد. reset( $array )
    الداله end() :
    هذه الداله عكس سابقتها reset حيث تقوم من اسمها بوضع المؤشر في اخر المصفوفه.
    end( $array )
    الداله prev() :
    واخيرتنا في هذا القسم هي هذه الداله وهي عكس الداله next وتقوم بالرجوع للخلف خطوه واحده فقط ثم ارجاع المتغير الذي وصلت اليه
    تعداد المصفوفات ( Counting ) :
    الداله count() :
    تستخدم هذه الداله لعد عناصر المصفوفه الموجوده لدينا, وتستخدم بالطريقه التاليه:
    نقره لتكبير أو تصغير الصورة ونقرتين لعرض الصورة في صفحة مستقلة بحجمها الطبيعي
    الداله sizeof() :
    تقوم هذه الداله بنفس عمل الداله count تمام , ولا يوجد بينهما اي اختلاف. sizeof( $array )
    الداله array_count_values() :
    هذه الداله جميله, ورهيبه , وعملها ان تقوم بعدد كم العناصر المتكرره في المصفوفه, فلو لديك مصفوفه يوجد بها ( 1 , 5 , 1 , 6 , 2 ) فسوف تخبرك الداله ان العدد 5 و 6 و 2 تكرر و مره واحده ولكن العدد 1 تكرر مرتان, طريقة عمل هذه الداله ان تقوم بإدخال مصفوفه اليها وتقوم بإرجاع مصفوفه حرفيه عناصرها هي عدد مرات التكرار والفهرس او المفاتيح هو عناصر المصفوفه الاولى, لنقم بأخذ مثال بسيط عليها, افتح محرر الاكواد وقم بعمل التالي:
    نقره لتكبير أو تصغير الصورة ونقرتين لعرض الصورة في صفحة مستقلة بحجمها الطبيعي
    والناتج هو :
    نقره لتكبير أو تصغير الصورة ونقرتين لعرض الصورة في صفحة مستقلة بحجمها الطبيعي
    الداله array_walk :
    في بعض الاحيان نريد ان نقوم بتعديل جميع عناصر المصفوفه الموجوده لدينا , من غير استخدام دالة تكرار وغير ذلك , ويمكننا تحقيق مبتغانا عن طريق الداله array_walk ووضع اليها بعض من نكهات الدوال, لنقل ان لدينا مصفوفه بها ارقام, ونريد ان نقوم بزيادة كل عنصر في المصفوفه بالعدد 1, كيف يمكننا فعل ذلك , افتح محرر الاكواد وقم بكتابة التالي:
    نقره لتكبير أو تصغير الصورة ونقرتين لعرض الصورة في صفحة مستقلة بحجمها الطبيعي
    وسوف يكون ناتج هذه الطريقه هو التالي:
    نقره لتكبير أو تصغير الصورة ونقرتين لعرض الصورة في صفحة مستقلة بحجمها الطبيعي

    سؤال على الدرس :
    1 – لا يوجد

    الـــدرس الــقادم :

    سوف نتعرف في الدرس القادم على متفرقات في لغة PHP مع بعض الامثله التطبيقية لتساعدنا على جمع كل ما تعلمناه الى الان

  6. #16
    أدارى
    الصورة الرمزية HVIPS4


    تاريخ التسجيل: Jun 2011
    رقم العضوية: 6
    الدولة: Cairo
    المشاركات: 1,979
    HVIPS4 غير متواجد حالياً

    رد: متكامل فى php


    الدرس السادس عشر: متفرقات وتطبيق على المصفوفات

    متطلبات قبل البدأ :

    • مراجعة جميع ما سبق تعلمه في لغة PHP

    اهداف الدرس:

    • طرق استخدام المتغيرات من النماذج النوع المخفي ( HIDDEN ) من انوع النماذج
    • الداله isset
    • الداله unset
    • تطبيق عملي


    طرق استخدام المتغيرات من النماذج :
    تعلمنا في السابق كيف نتحكم في المتغيرات التي تأتي من النماذج, في الحقيقه هي 3 انواع, وتطرقنا الى نوع واحد , وهو البسيط. حيث انك تكتب في الصفحه التي يذهب اليها المتغير اسم المتغير فقط, لكن اليوم سوف نتعلم طريقتان اخرى , غير الاولى, وهي عباره عن مصفوفات حرفيه, نستخدمها للتحكم في المتغيرات, في الحقيقه لا يوجد لهذه الطرق اسماء ولكن شاهدت كتابا يقوم بإعطاء اسماء لها مبسطه ومميزه, ( الاسلوب القصير ) , ( الاسلوب المتوسط ) , ( الاسلوب الطويل ), لنقم بمشاهدتها مع بعضنا البعض:
    نموذج ارسال بيانات:
    نقره لتكبير أو تصغير الصورة ونقرتين لعرض الصورة في صفحة مستقلة بحجمها الطبيعي
    الان في الصفحه التي نعرف بها البيانات , لدينا 3 طريق لاخذ هذا المتغير , لاحظ التالي:
    نقره لتكبير أو تصغير الصورة ونقرتين لعرض الصورة في صفحة مستقلة بحجمها الطبيعي
    ماهو الفرق بين هذه الطرق الثلاث, واي واحد تقوم بإستخدامه ؟؟ عن نفسي انا شخصيا احبذ استخدام الاسلوب الطويل ويحبذ ان تقوم بالاقرار على استخدام اسلوب واحد من الثلاثه فقط, الفروقات بين الثلاث طرق هو التالي:
    الاسلوب القصير : اسهل اسلوب ولكن يقتضي ان يكون خيار register_global على الوضع on في اعدادات اللغه وكل هذا يعتمد على النسخه المستخدمه لديك, وهذا الاسلوب يجعلك تقوم بإخطاء تقوم بجعل موقع سهل الاختراق او غير امن
    الاسلوب المتوسط : هذا الخيار جيد ولكن لن يقوم بالعمل الا اذا كانت لغة PHP التي قمت بتنصيبها اعلى من 4.1.0
    الاسلوب الطويل : هذا هو افضل اسلوب تقوم بإستخدامه وهو الخيار الوحيد المضمون ان يعمل على اي خادم ( server ) مهما كانت اعدادات اللغه, وهو اكثرها حمايه وامانا, ولكن يحتمل ان يقوم صاحبو لغة PHP بإلغائه على المدى الطويل
    ملاحظه : اذا كانت طريقة ارسال النموذج POST فسوف تستخدم الامثله الموجوده بالاعلى , ولكن لو كانت الطريقه GET فقط قم بإستبدال العباره POST بالعباره GET
    الداله isset :
    تقوم هذه الداله , بالتحقق من ان متغير تم انشاءه ام لا , لاحظ المثال التالي:
    نقره لتكبير أو تصغير الصورة ونقرتين لعرض الصورة في صفحة مستقلة بحجمها الطبيعي
    الداله unset :
    تقوم هذه الداله بألغاء متغير موجود, لاحظ المثال التالي:
    نقره لتكبير أو تصغير الصورة ونقرتين لعرض الصورة في صفحة مستقلة بحجمها الطبيعي
    النوع HIDDEN من انوع النماذج :
    في بعض الاحيان نريد ان نقوم بإرسال بيانات مخفيه من صفحه الى اخرى, ولا يعلم بوجودها الزائر , مثلا عدد الدرجات التي حصل عليها الى الان, او عنوان ال IP وغيرها , فسوف نستخدم الطريقه التالي:
    نقره لتكبير أو تصغير الصورة ونقرتين لعرض الصورة في صفحة مستقلة بحجمها الطبيعي
    1 – اسم المتغير
    2 – القيمه الموضوع بالمتغير
    تطبيق عملي :
    ماهو التطبيق العملي المناسب, احترت كثيرا في اختياره , ولهذا تأخر صدور الدرس يوما كاملا, ولاننا في دروس مبتدئه ولم نقم بالمرور على قواعد البيانات او حفظ الملفات, فسوف نقوم بعمل تطبيق عملي بسيط, وهو نموذج الاختبار الذي قمنا بعمله سابقا, ولكن سوف نقوم بوضع الاسئله واجاباتها في مصفوفه وانشاء السؤال بطريقه عشوائيه , افتح محرر الاكواد وقم بكتابة التالي:
    نقره لتكبير أو تصغير الصورة ونقرتين لعرض الصورة في صفحة مستقلة بحجمها الطبيعي
    نقره لتكبير أو تصغير الصورة ونقرتين لعرض الصورة في صفحة مستقلة بحجمها الطبيعي
    نقره لتكبير أو تصغير الصورة ونقرتين لعرض الصورة في صفحة مستقلة بحجمها الطبيعي
    نقره لتكبير أو تصغير الصورة ونقرتين لعرض الصورة في صفحة مستقلة بحجمها الطبيعي
    سأشرح لك التطبيق بطريقه سريعه, ولو تعمقت في طريقة الكتابه وقرأت التعليقات, سوف تتمكن من معرفة طريقة عمل البرنامج الصحيحه, لنبدأ.
    1 – انشأنا عباره شرطيه, اذا كان المتغير انشأ من قبل فذلك يعني ان المستخدم قد نقر على زر الارسال في النموذج ( جاوب على السؤال ) وارسل المتغير, غير ذلك نقوم بعرض السؤال
    2 – نضع 3 اسئله في مصفوفه حرفيه , ثم نقوم بترتيبها عشوائيا واختيار السؤال الاول واجابته في المصفوفه, ونضعه في مصفوفه اخرى رقميه بحيث ان الخانه 0 السؤال والخانة 1 الاجابه , واستخدمنا العباره break لاننا نريد اخذ السؤال الاول واجابته فقط, غير ذلك يخرج من دالة التكرار FOR
    3 – انشأنا مدخلين من النوع المخفي ( hidden ) نضع بها السؤال المطروح والاجابه الصحيحه له
    4 – اذا قام المستخدم بالاجابه نقوم بعبارت شرطيه التحقق ان المستخدم ادخل الاجابه وانها ارقام وغير ذلك

    سؤال على الدرس :
    1 – توجد الف طريقه لعمل هذا التطبيق, حاول ان تقوم بعمله بطريقه اخرى بإستخدام المصفوفات ولكن بطريقه اسهل من هنا ,
    ملاحظه ( قمت بإعطائك الطريقه الصعبه لكي تفهم المطلوب جيدا )

    الـــدرس الــقادم :

    سوف نتعرف في الدرس القادم على برمجة الكائنات في لغة PHP

  7. #17
    أدارى
    الصورة الرمزية HVIPS4


    تاريخ التسجيل: Jun 2011
    رقم العضوية: 6
    الدولة: Cairo
    المشاركات: 1,979
    HVIPS4 غير متواجد حالياً

    رد: متكامل فى php


    الدرس السابع عشر: برمجة الكائنات

    متطلبات قبل البدء :

    • لا يوجد

    اهداف الدرس :

    • مقدمه عن برمجة الكائنات ( Object Oriented )
    • مبدأ التعدديه ( Polymorphism )
    • مبدأ الوراثه ( Inheritance )
    • انشاء التصنيفات ( Class ) , الخواص ( Attribute ) , العمليات ( Operations )
    • مؤسس التصنيف ( Constructer )
    • استخدام التصنيفات


    مقدمه عن برمجة الكائنات ( Object Oriented ) :
    برمجة الكائنات نعني بها , الوصول بالبرمجه الى محاكاة الواقعيه, كثير من البرامج التي لا تدعم الكائنات يصعب فهم كودها, ولكن مع هذه الطريقه, يوجد لدينا طريق نحاكي به الواقع, لو فكرت قليلا وسألت نفسك, كيف يمكنني ان اقوم بمحاكاة سيارة , طائره , انسان وغيرها, صدقني سيصعب عليك ذلك من غير هذا المبدأ ولكن اذا استخدمت برمجة الكائنات فيسهل عليك فعل كل شي محاكي للواقع تريده, فمثلا لو قلنا ان لدينا تصنيف ( Class ) اسمه بشر , اكيد ان هذا البشر لديه خواص ( attributes ) فهو ينتمي الى نوع وهو ذكر او انثى, لديه اسم , لديه عمر , لديه لون بشره , لديه طول , لديه وزن وهكذا, ولديه عمليات ( operations ) يقوم بها كالنوم والاستيقاظ, والافطار, تخيل انك تقوم بفعل هذا كله بالبرمجه ؟؟؟ ماهو الاسهل بالنسبه لك الطريقه المعتاده من كتابة الاكواد , او الطريقه الجديده التي سنتعلمها بعد قليل نقره لتكبير أو تصغير الصورة ونقرتين لعرض الصورة في صفحة مستقلة بحجمها الطبيعي . وايضا نستطيه استخدام هذا المبدأ للاشياء المبدئيه, كالملفات مثلا , فيوجد لدينا ملف , ولديه اسم ولديه حجم , ولديه نوع وغير ذلك.
    كثير من لغات البرمجه الحديثه تدعم مبدأ ( Object Oriented ), وتعتبر التي لا تدعمها ضعيفه, فأصبح كل شي في هذه الايام يعتمد على هذا المبدأ, فهو اسرع , اسهل , اكثر حمايه من الكود العادي, وبعض اللغات يطلب منها ويلزم عليها ان تكون مبنيه على هذا المبدأ. ومن وجهة نظري انا, اعتقد ان البرنامج الذي لا يستخدم هذا المبدأ لن يكون جيدا , ( ليس في كل الحالات ).
    من اعظم فوائد مبدأ ( Object Oriented ) دعم والتشجيع على مبدأ ( Encapsulation ) ونعني به ( اخفاء المعلومات ), حيث اننا لا نستطيع التحكم في الخواص او المعاملات الا عن طريق الكائن, ومانسميه بواجهة الكائن. حى لو اردنا تغير نوع او اصلاح او اضافة اي شيئ, فسوف نرجع الى التصنيف الاساسي , ولن تطرق الى تعديل جميع اكوادنا. ويمكننا انشاء اكثر من ( Object ) من هذا التصنيف, حيث كل واحد منهم منفصل عن الاخر, فتخيل لدينا التصنيف الاول ( البشر ) فنستطيع انشاء عدة كائنات منه , واحد اسمه محمد ولديه خواص معينه , والاخر اسمه نوال ولديه خواص ومعاملات اخرى, ولا يعني انهم واحد, فكل واحد منهم منفصل على الاخر, ولديه تحكمات وخواص خاصه به.
    مبدأ التعدديه ( Polymorphism ) :
    بحثت في كثير من المعجمات والتراجم عن معنى هذه الكلمه بالعربيه ولم اجد, ولكن قرأت كتابا يقول عنها ( Different Classes have different behaviors for the same operations ) ومعنى ذلك باللغه العربيه, ان تصنيفات مختلفه يكون لديها سلوكات مختلفه لنفس العمليات, معادله رياضيه اليس كذلك ؟ لن تستطيع فهمها بسرعه, يجب ان تأخذ عليها امثله كثيره ليصل المبدأ الى العقل وتقوم بإستيعابه, واترك ذلك علي فسأحاول قدر الامكان ان اقوم بتسهيله لك. لنأخذ مثالا على ذلك, لو عندنا تصنيف سياره وتصنيف دراجه هوائيه, فكل منهما لديه خاصية التحرك ولكن في السياره يجب ان تقوم بالتشغيل, ولكن في الدراجه بطريقه اخرى ولا يوجد لدينا تشغيل, ولكن في لغات البرمجه لا يوجد لدينا هذا الواقع ولا تقوم بمحاكاة الواقع 100%100 فلذلك تحتاج اللغه ( polymorphism ) لكي تعرف اي عمليه تقوم بعملها لاي تصنيف. لنقولها بطريقه واقعيه باستخدام اللغه العربيه, الدراجه تحتاج الى تقوم بصيانتها , صبغها , تنظيفها , تلميعها , ونفس الشيئ السياره , ولكن اذا قلت اريد ان انظف, فيوجد بعقلك ماهو الشيئ الذي تريد ان تقوم بتنظيفه هل هو سياره او دراجه, هل وصلت الفكره ؟؟
    مبدأ الوراثه ( Inheritance ) :
    عملية الوراثه سهله, فأنت على سبيل المثال, ورثت صفة الحواجب العريضه من الاب, و الانف المعتدل من الام وغير ذلك, ولكن لديك اشياء وخواص خاصه بك لا توجد في الاب و الام اليس ذلك صحيحا ؟ نفس الشيئ هنا, لنضرب مثالا على ذلك , لدينا شركة سيارات, تقوم ببيع سيارات على عدة انواع ( رياضيه , عائليه , جيب ) , كل منهم لديهم خواص متماثله , كل سياره لها لون, كل سياره لها 4 عجلات, وغيرها, ولكن كل نوع لديه بعض الخصائص لا توجد في الاخرى, الرياضيه مقعدان فقط, الجيب 7 مقاعد , العائليه 5 مقاعد. في مبدا الكائنات نقوم بعملها كالتالي, ننشئ تصنيف اسمه سياره, وثلاث تصنيفات اخرى ونجعلها تورث الصفات من التصنيف سياره, هل وضحت الصوره ؟ انظر المثال التالي:
    نقره لتكبير أو تصغير الصورة ونقرتين لعرض الصورة في صفحة مستقلة بحجمها الطبيعي
    انشاء التصنيفات ( Class ) , الخواص ( Attribute ) , العمليات ( Operations ) :
    تكلمنا كثيرا في درس اليوم, لنأتي الان الى تطبيقاتنا , ونأخذ امثله حيه لكيفة انشاء التصنيفات والخواص والمعاملات. يمكننا انشاء تصنيفات بإستخدام العباره class لاحظ المثال التالي:
    نقره لتكبير أو تصغير الصورة ونقرتين لعرض الصورة في صفحة مستقلة بحجمها الطبيعي
    تصنيفنا هذا يحتاج الى خواص , لنقم الان بإنشاء خاصيتين , وهي اسم السياره ولونها , ونقوم بإنشاء الخواص بإستخدام العباره var , لاحظ التالي :
    نقره لتكبير أو تصغير الصورة ونقرتين لعرض الصورة في صفحة مستقلة بحجمها الطبيعي
    ————————————————
    مؤسس التصنيف ( Constructer ) :
    في كل تصنيف نقوم بإنشائه يجب علينا ان نقوم بإنشاء مؤسس لهذا التصنيف ويسمى ( Constructer )وهو نوع خاص من العمليات, وينادى هذا المؤسس في حالة انشاء الكائن وفي العاده يقوم ببدأ خواص الكائن, كجعل الخواص تبدأ من البدايه وغيرها, ويجب ان يكون اسمه بنفس اسم التصنيف, والطريقه هي كالتالي:
    نقره لتكبير أو تصغير الصورة ونقرتين لعرض الصورة في صفحة مستقلة بحجمها الطبيعي

    ————————————————

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

    سؤال على الدرس :
    1 – لا يوجد

    الـــدرس الــقادم :

    سوف نتعرف في الدرس القادم على استخدام الخواص والمعاملات والوراثه , لكي نتحكم بقوه اكبر في برمجة الكائنات

  8. #18
    أدارى
    الصورة الرمزية HVIPS4


    تاريخ التسجيل: Jun 2011
    رقم العضوية: 6
    الدولة: Cairo
    المشاركات: 1,979
    HVIPS4 غير متواجد حالياً

    رد: متكامل فى php


    الدرس الثامن عشر: التحكم في برمجة الكائنات

    متطلبات قبل البدء :

    • مراجعة الدرس السابع عشر: برمجة الكائنات

    أهداف الدرس :

    • استخدام خصائص التصنيفات
    • استخدام معاملات التصنيفات
    • الوراثه ( Inheritance )
    • الوراثه المتعدده


    استخدام خصائص التصنيفات :
    تعلمنا في السابق , كيفية انشاء تصنيف وتشغيله وانشاء خصائصه وعوامله, الان سنتعلم كيفية استخدام كل جزء من التصنيف لنعطي تحكم اكبر بالتصنيف والتعامل معه بطريقه تساعدنا على الوصول الى ما نريد اليه, عندما انشأنا التصنيف سياره, قامت
    PHP بنفسها انشاء متغير لنا اسمه $this ومعناه ( هذا ), فلو لاحظنا في تصنيفنا السابق ان لدينا خاصيتان واحده منهما هي $carName اليس ذلك صحيحا ؟ , فلو اردنا استخدام هذا المتغير او اردنا الاشاره عليه فسوف نقوم بالتالي $this->carName , سواءً اردنا استخدامه او اردنا تعيين قيمه اليه , داخل معامل او خارجه. لاحظ معي الكود التالي:
    نقره لتكبير أو تصغير الصورة ونقرتين لعرض الصورة في صفحة مستقلة بحجمها الطبيعي
    في لغة PHP جميع الخصائص التي نقوم بعملها تكون عامه ( public ) , ( تم تغيير ذلك في النسخه رقم 5 من اللغه وسنتطرق اليها لاحقا ) , حيث ان يمكننا استخدامها خارج التصنيف في كل الحالات , فمثلا لاحظ التالي:
    نقره لتكبير أو تصغير الصورة ونقرتين لعرض الصورة في صفحة مستقلة بحجمها الطبيعي
    لاحظ اننا هنا لم نقوم بإستخدام ميزة التصنيفات الرئيسية وهي ( اخفاء المعلومات ) , ويجب ان نقوم بإستخدامها لكي نضمن الحمايه الكامله لبرنامجنا , ولكن هناك طريقة اخرى يمكننا الوصول بها الى اخفاء الملعومات وهي , استخدام المعاملات , فنضع معامل يقوم بتغير قيمة خاصيه , ومعامل يقوم بوضع قيمه في خاصيه وغيرها , لاحظ المثال التالي:
    نقره لتكبير أو تصغير الصورة ونقرتين لعرض الصورة في صفحة مستقلة بحجمها الطبيعي
    1 – معامل يقوم بإرجاع قيمة خاصيه
    2 – معامل يقوم بإسناد قيمه الى خاصيه
    الان سوف نستخدمه بالطريقه التاليه:
    نقره لتكبير أو تصغير الصورة ونقرتين لعرض الصورة في صفحة مستقلة بحجمها الطبيعي
    ويمكننا الان , وضع شروط بحيث ان اللون لا يمكن ان يكون احمر على سبيل المثال, شاهد التالي:
    نقره لتكبير أو تصغير الصورة ونقرتين لعرض الصورة في صفحة مستقلة بحجمها الطبيعي

    استخدام معاملات التصنيفات :

    الان , لنرى المعاملات , نفس الطريقه التي تعلمناها قبل قليل , ويجب عليك ان تعرف ان كان المعامل يطبع قيمه سوف تقوم بالتالي:
    $x->newColor()
    اما اذا كان يرجع قيمه ( اي تستخدم في الاخير العباره return ) فتقوم بالتالي

    echo $x->newColor()

    او
    $y = $x->newColor()
    بكل سهوله نقره لتكبير أو تصغير الصورة ونقرتين لعرض الصورة في صفحة مستقلة بحجمها الطبيعي , اليس ذلك صحيحها ؟
    الوراثه ( Inheritance ) :
    اذا كنت تريد ان تقوم بعمل الوراثه الي تكلمنا عنها في الدرس السابق , سوف تقوم بإستخدام الكلمه المفتاحيه extends وطريقة عملها كالتالي:
    نقره لتكبير أو تصغير الصورة ونقرتين لعرض الصورة في صفحة مستقلة بحجمها الطبيعي
    الان لو اردنا انشاء , كائن من هذا التصنيف , سوف يكون كالتالي:
    نقره لتكبير أو تصغير الصورة ونقرتين لعرض الصورة في صفحة مستقلة بحجمها الطبيعي
    طبعا يمكننا استخدام كل عاومل وخصائص التصنيف الذي نرث منه , ولكن العكس ليس صحيح , فلو قلنا ان ( ب ) يرث التصنيف ( أ ) , فسوف تكون خصائص وعوامل ( أ ) كلها موجوده في ( ب ) , ولكن خصائص ( ب ) غير موجوده في ( أ )

    الوراثه المتعدده :

    كثير من لغات البرمجه , لا تسمح بالوراثه المتعدده , واعني بذلك , اذا كان التصنيف ( ت ) , يرث من ( أ ) ومن ( ب ) في نفس الوقت , فذلك غير مسموح , بحيث ان كل تصنيف , يرث من مكان واحد فقط , ولكن اذا كان هناك ( أ ) وهناك ( ب ) و ( ج ) , فيمكن ل ( ب ) و ( ج ) ان يرثو ( أ ) في نفس الوقت.

    سؤال على الدرس :
    1 – قم بإنشاء تطبيق , يقوم بعرض رأس صفحه وذيلها , والمكونات التي بها عن طريق التصنيفات , ثم بعد ذلك قم بإنشاء صفحات اخرى عن طريق الوراثه

    الـــدرس الــقادم :

    سوف نتعرف في الدرس القادم على دوال التحكم في النصوص , ومايسمى ( regular expressions )

  9. #19
    أدارى
    الصورة الرمزية HVIPS4


    تاريخ التسجيل: Jun 2011
    رقم العضوية: 6
    الدولة: Cairo
    المشاركات: 1,979
    HVIPS4 غير متواجد حالياً

    رد: متكامل فى php


    الدرس التاسع عشر: دوال التحكم بالنصوص

    متطلبات قبل البدء :

    • لا يوجد

    أهداف الدرس:

    • التحرير والتحكم بالنصوص
    • جمع وتفصيل النصوص
    • مقارنة النصوص
    • مطابقة وبحث وتغيير النصوص


    التحرير والتحكم بالنصوص :
    ترى كثيرا ان معظم المواقع تجعلك تضع معلومات وتقوم بإرسالها اليهم , سواء اسمك او بريدك او رسالتك , ولكن هل تعتقد انها تمر اليهم من غير فلتره ؟؟؟ متأكد ان جوابك سيكون لا, فالموقع لا يضمن ما يقوم بإدخاله المستخدم , هل هو المطلوب , او مجرد كلام ليس له معنى , اليس كذلك صحيحا ؟ فهنا تأتي فائدة تحرير واالتحكم بالنصوص , وسوف نستعرض اليوم دوال كثيره تجعلك تتحكم بالنصوص لكي تقوي برامجك وتجعلها محميه وقويه.
    الدوال chop و ltrim و trim :
    تستخدم هذه الدوال لكي نضمن ان المستخدم لي يضع اي فراغات في المدخل , يمكن ان تقول هذا الشيئ غير ضروري , ولكنه ضروري اذا كنت ستحفظ هذه المعلومه في قواعد البيانات او تريد مقارنة النص , فالمسافه محسوبه في النصوص , الداله trim تقوم بألغاء اي مسافات من بداية ونهاية النص, لاحظ المثال التالي:
    نقره لتكبير أو تصغير الصورة ونقرتين لعرض الصورة في صفحة مستقلة بحجمها الطبيعي
    عرفت الطريقه الان ؟ بالنسبه للداله ltrim فهي تقوم بنفس عمل trim ولكن تلغي المسافات من الجزء الايسر , اي من بداية النص , اما الداله chop فتقوم بألغاء المسافه من الجزء الايمين , اي اخر النص
    الدالتين printf و sprintf :
    تقوم هذه الدالتين بنفس عمل الداله print والفرق بينهما وبين العباره print انها تقوم بطباعة النص بطريقه معينه, لم تفهم ما اعنيه ؟ لنأخذ مثالا , تخيل ان لديك عدد ( 2.258982 ) على سبيل المثال , وتريد ان تطبع هذا العدد ولكن بالطريقه التاليه ( 2.25 ) فسوف تستخدم هذه الدالتين, الاختلاف بين printf و sprintf ان الاولى تقوم بالطباعه ام الثانيه فتقوم بإرجاع النص المعدل. الان لاحظ المثال التالي:
    نقره لتكبير أو تصغير الصورة ونقرتين لعرض الصورة في صفحة مستقلة بحجمها الطبيعي
    والناتج هو نفسه تماما , ولاحظ في الداله printf , ندخل اليها مدخلان , النص و
    القيمه المستبدله , فتقوم بإستبدال %s ب قيمة $total , ارأيت السهوله ؟ ملاحظه معنى %s هو ( استبدل بالنص او القيمه الثانيه المدخله ). الان لو اردنا ان نطبع العدد هكذا 2.25 سوف نقوم بالتالي:
    نقره لتكبير أو تصغير الصورة ونقرتين لعرض الصورة في صفحة مستقلة بحجمها الطبيعي
    وناتجنا هو التالي:
    نقره لتكبير أو تصغير الصورة ونقرتين لعرض الصورة في صفحة مستقلة بحجمها الطبيعي
    يمكنك ان تدرج اكثر من خاصية تحويل ( % ) في النص , لاحظ المثال التالي اضغط على
    الصوره للتكبير :

    نقره لتكبير أو تصغير الصورة ونقرتين لعرض الصورة في صفحة مستقلة بحجمها الطبيعي
    ملاحظه ( كل خواص التحويل تبدأ بي علامة % , ولو احتجت يوما ما الى طباعة هذا الرمز الى المتصفح استخدم الطريقه %% ) , لكي تعرف الخواص الاخرى في التحويل لاحظ المثال الجدول التالي
    النوع
    المعنى
    b
    يترجم على شكل عدد صحيح ويطبع على شكل ثنائي
    c
    يترجم على شكل عدد صحيح ويطبع على شكل على حروف
    d
    يترجم على شكل عدد صحيح ويطبع على شكل عشري
    f
    يترجم على شكل عدد عشري ( double ) ويطبع على شكل عشري ( float )
    s
    يترجم على شكل نص ويطبع على شكل نص
    الدوال strtoupper و strtolower و ucfirst و ucwords :
    الداله strtoupper تقوم بجعل كل الحرووف كبيره ( باللغه الانجليزية ) , اي تقوم بتحويل a الى A وهكذا
    الداله strtolower تقوم بجعل كل الحروف صغيره ( باللغه الانجليزية ) اي تقوم بتحويل A الى a وهكذا
    الداله ucfirst تقوم بجعل اول حرف من الجمله بالحاله الكبيره
    الداله ucwords تقوم بجعل اول حرف من كل كلمه في النص الى الحاله الكبيره
    نقره لتكبير أو تصغير الصورة ونقرتين لعرض الصورة في صفحة مستقلة بحجمها الطبيعي
    والناتج هو
    نقره لتكبير أو تصغير الصورة ونقرتين لعرض الصورة في صفحة مستقلة بحجمها الطبيعي
    جمع وتفصيل النصوص :
    في كثير من الاحيان نريد ان نفصل نص عن النص الكلي , لكي نقارن او نتحكم او اي شي اخر , وبعض الاحيان نريد ان نقوم بجمع النصوص مع بضها البعض وسوف نتعلم الان الطرق لعمل ذلك ,
    الداله explode و implode و join :
    تستخدم الداله explode لفصل النص عن بعضه البعض وتقوم بإرجاع الناتج على شكل مصفوفه , فلو ان المستخدم ادخل بريده الالكتروني , ونريد ان نعرف ماهي الشركه الي يستخدمها سوف نقوم بالتالي :
    نقره لتكبير أو تصغير الصورة ونقرتين لعرض الصورة في صفحة مستقلة بحجمها الطبيعي
    الدالتين implode و join متطابقه تماما , فلو اردنا جمع نص مع بعضه البعض سوف نقوم بعمل التالي:
    نقره لتكبير أو تصغير الصورة ونقرتين لعرض الصورة في صفحة مستقلة بحجمها الطبيعي
    الداله substr:
    تستخدم هذه الداله لتعطيك تحكما في نص جزء من نص اكبر بتحديد البدايه والنهايه وتقوم بإرجاع النص المطلوب, فمثلا لو لديك النص ( Hello World ) وتريد ان تأخذ كلمة hello فقط , فسوف تقوم بالتالي:
    نقره لتكبير أو تصغير الصورة ونقرتين لعرض الصورة في صفحة مستقلة بحجمها الطبيعي
    الان لو تلاحظ كيفية عمل الداله فهي كالتالي ( قارن الارقام مع الصوره بالاسفل ) :
    1 – النص المراد ان تأخذ جزأ منه
    2 – مكان البدايه
    3 – مكان النهايه
    نقره لتكبير أو تصغير الصورة ونقرتين لعرض الصورة في صفحة مستقلة بحجمها الطبيعي
    نبدأ النصوص دائما من 0 , وفي مثالنا من 0 الى 5 , نعني به 0 و 1 و 2 و 3 و 4 , لاحظ
    التالي:
    نقره لتكبير أو تصغير الصورة ونقرتين لعرض الصورة في صفحة مستقلة بحجمها الطبيعي
    لو اردنا الجمله من مكان معين الى النهايه فسوف نضع قيمة البدايه فقط , لاحظ التالي:
    نقره لتكبير أو تصغير الصورة ونقرتين لعرض الصورة في صفحة مستقلة بحجمها الطبيعي
    وسوف ينتج لنا llo world
    مقارنة النصوص :
    في السابق قلنا اننا لو اردنا ان نقارن سوف نستخدم == او === اليس ذلك صحيحا ؟ هناك طرق اخرى للمقارنه سوف نراها الان ,
    الدوال strcmp و strcasecmp:
    هذه الدوال تستخدم لمقارنة النصوص , فالداله strcmp تقوم بإعطائنها نصين وتقوم بمقارنتهما , اذا كانو متساوييان سوف ترجع لك القيمه 0 , اما اذا كان الاول اكبر من الثاني سوف ترجع رقم اكبر من الصفر واذا كان اصغر سوف ترجع قيمه اقل من الصفر ( اي بالسالب ) , وهذه الداله حساسه لحالة الاحرف , لاحظ التالي:
    نقره لتكبير أو تصغير الصورة ونقرتين لعرض الصورة في صفحة مستقلة بحجمها الطبيعي
    الداله strcasecmp مطابقه للداله strcmp والفرق ان strcasecmp حساسه لحالة
    الاحرف
    الداله strlen :
    تستخدم هذه الداله لمعرفة طول نص معين , وطريقتها كالتالي:
    نقره لتكبير أو تصغير الصورة ونقرتين لعرض الصورة في صفحة مستقلة بحجمها الطبيعي
    مطابقة وبحث وتغيير النصوص :
    دوال البحث عن النصوص strstr و strchr و strrchr و stristr :
    الدالتين strstr و strchr متطابتقين تماما و حساسه لحالة الاحرف , مع ان الثانيه تستخدم للبحث عن الاحرف ولكن الاولى تؤدي نفس العمل , وهي الافضل والمناسبه دائما , طريقة هذه الداله كالتالي:
    نقره لتكبير أو تصغير الصورة ونقرتين لعرض الصورة في صفحة مستقلة بحجمها الطبيعي
    1 – النص الكلي
    2 – الكلمه المراد البحث عنها
    اذا وجدت الداله كلمه مطابقه فسوف تقوم بإرجاع الكلمه ثم باقي الجمله , وتهمل ما قبل
    الكلمه التي عثر عليها , لاحظ ناتج مثالنا بالاعلى
    نقره لتكبير أو تصغير الصورة ونقرتين لعرض الصورة في صفحة مستقلة بحجمها الطبيعي
    بالنسبه للداله stristr فهي مطابقه ل strtsr والفرق هو انها غير حساسة لحالة الاحرف, اما الداله strrchr فهمي ايضا مطابقه والفرق الوحيد هو انه اذا كانت الكلمه مكرره مرتين في الجمله , فسوف تقوم بإرجاع النص من اخر مكان تكررت فيه الجمله, على عكس strstr فهمي تقوم بإرجاع النص من اول مكان تكررت فيه الجمله
    دوال تحديد اماكن النص strpos و strrpos :
    هذه الدوال مشابه تقريبا الى strstr والفرق ان هذه الدوال تقوم بإرجاع المكان الرقمي للنص , لاحظ المثال التالي,
    نقره لتكبير أو تصغير الصورة ونقرتين لعرض الصورة في صفحة مستقلة بحجمها الطبيعي
    وسوف تقوم هذه الداله بإرجاع الرقم 6 , لان الكلمه world بدأت من الخانه 6 , قم بالعد وقارن نقره لتكبير أو تصغير الصورة ونقرتين لعرض الصورة في صفحة مستقلة بحجمها الطبيعي
    الداله strrpos سوف تقوم بأرجاع اخر مكان ظهر به النص على عكس strpos , كما تعلمنا في دوال البحث في الاعلى
    دالة تغيير النصوص str_replace :
    تقوم هذه الداله str_replace بإيجاد نص وتغييره , وهي مفيده جدا لتتغير السريع , وطريقتها كالتالي:
    نقره لتكبير أو تصغير الصورة ونقرتين لعرض الصورة في صفحة مستقلة بحجمها الطبيعي
    1 – الكلمات التي نريد استبدالها
    2 – الكلمات الجديده
    3 – الجمله
    لاحظ انه بالامكان ان نجعل الكلمات الجديده , والكلمات القديمه , في مصفوفه كل واحده على حده , لكي نقوم بإستبدال اكثر من كلمه , ويمكن ايضا من غير مصفوفه , حيث ان جميع الحالات مسموحه , واصبحت هكذا من نسخة PHP رقم 4.0.5

    سؤال على الدرس :
    1 – قم بإنشاء نموذج مراسله بريدية , فيه اسم المرسل , البريد , الرساله , وقم بوضع بعض تحكمات النصوص ( على سبيل المثال البريد لا يكون اقل من 3 احرف , الرساله لا تحتوي على كلمات غير لائقه )

    الـــدرس الــقادم :

    سوف نتعرف في الدرس القادم على مايسمى ( regular expressions )

  10. #20
    أدارى
    الصورة الرمزية HVIPS4


    تاريخ التسجيل: Jun 2011
    رقم العضوية: 6
    الدولة: Cairo
    المشاركات: 1,979
    HVIPS4 غير متواجد حالياً

    رد: متكامل فى php


    الدرس العشرون: التعابير القياسيه

    متطلبات قبل البدء :

    • مراجعة الدرس السابع عشر: برمجة الكائنات

    اهداف الدرس:

    • مقدمه عن التعابير القياسيه ( Regular Expressions )
    • العثور على النصوص بإستخدام التعابير القياسيه
    • استبدال النصوص بإستخدام التعابير القياسيه
    • فصل النصوص بإستخدام التعابير القياسيه


    مقدمه عن التعابير القياسيه ( Regular Expressions ) :
    تدعم لغة PHP نوعان من التعابير القياسيه , وهي POSIX و PERL , الاول يكون مدمج مع اللغه تلقائيا ولكن الاخر يحتاج الى ان تقوم بتنصيبه ,, لا تقلق فعند استخدامك التنصيب العادي للغة سوف يتم وضع الاثنان معا , يعتبر النوع الاول اسهل في التعلم والطبيق من النواع الثاني , ويتم ترجمته وتشغيله اسرع ,, ولكنه ليس امن كالثاني نقره لتكبير أو تصغير الصورة ونقرتين لعرض الصورة في صفحة مستقلة بحجمها الطبيعي . جميع ما تعلمناه في الدرس السابق كان عباره عن مقانرة نصوص متطابقه او اجزاء من النصوص ولكن ماذا لو احتجنا الى ان نقوم بشيئ اكثر من ذلك ,, فالتعابير القياسيه هي مبتغانا ,, وسوف نقم بالتعلم عليها والتطبيق عليها.
    الاساسيات:
    التعابير القياسيه هي طريقة لوضع او شرح نمط معين مكرر في نص , فالعباره ( email )
    تساوي في التعابير القياسيه ( mail ) و ( ma ) و ( i ). لكن مع استخدام التعابير القياسيه يمكننا المقارنه بالطرق التاليه ,, يقع الحرف في اول النص , الاخر , الوسط , وغير ذلك من الطرق التي سنتطرق لها
    الاحرف والتصانيف:
    لنأخذ امثله لكي نفهم الاحرف والتصانيف , لو استخدمنا الحرف ( . ) فهذا يقوم بمطابقة اي حرف اخر غير علامة السطر الجديد ( نقره لتكبير أو تصغير الصورة ونقرتين لعرض الصورة في صفحة مستقلة بحجمها الطبيعي ) , فلو قلنا نريد ان نقوم بمطابقة .at
    فسوف يكون النتاج كالتالي , cat و mat و sat . لكن هذه الطريقه سوف تقوم ايضا بفرض ان #at نريده مع المقارنه , لكن هناك حل بأن نقوم بجعل المطلوب فقط احرف بالطريقه التاليه [a-z] ارأيت السهوله ؟ مثلا لو اردنا احرف ( vowel ) في مجموعه , سوف نقوم بالتالي [aeiou] , ويمكن استخدام مدى كما فعلنا قبل قليل [a-z] او اكثر من مدى [a-zA-Z] وهذا معناه اي حرف من a الى z سواء كان في حالته الصغرى او الكبرى ( في اللغه الانجليزيه ) , ويمكن ايضا ان نخرج مدى من المقارنه كالتالي [^a-z] فهذا يقوم بمقارنة اي حرف غير a الى z فالعلامه ^ اذا وضعت بين الاقواس [] معناها ( not ) اي ( ليس ) , وضحت الفكره الان ؟ بجانب المدى الذي نقوم بتحديده , او نريد مدى معين في بالنا , هناك مدى معرف سابقا في لغة PHP , لاحظ الجدول التالي:
    المدى
    المعنى
    [[:alnum:]]
    كل الارقام
    [[:alpha:]]
    كل الاحرف
    [[:lower:]]
    كل الاحرف في النمط الصغير
    [[:upper:]]
    كل الاحرف في النمط الكبير
    [[:blank:]]
    فراغات و علامة TAP
    [[:space:]]
    علامات الفراغات
    [[نقره لتكبير أو تصغير الصورة ونقرتين لعرض الصورة في صفحة مستقلة بحجمها الطبيعيrint:]]
    كل الاحرف القابله للطباعه
    [[:graph:]]
    كل الاحرف القابله للطباعه ما عدا المسافات
    التكرار:
    في بعض المرات , تريد ان تقول ان هناك بعض النصوص تكرر اكثر من مره, يمكنك التعبير هنا بطريقتين في التعابير القياسيه ,, الاولى بإستخدام الحرف * و معناه ان النمط يمكن تكرار ( صفر او اكثر ) من مره. والطريقه الاخرى هي الحرف + وهذا معناه ان النمط يمكن ان يتكرر ( مره او اكثر )
    اجزاء التعابير:
    مثال على هذه الطريقه لتوضيحها , (very )*large سوف تقوم بمطابقة التالي: ‘large’ و ‘very large’ و ‘very very large’ وهكذا
    عد اجزاء التعابير:
    يمكنك تحديد عدد تكرار بعض الاشياء بإستخدام الارقام بين الاقواس {} , يمكنك
    تحديد مطابقة تماما بالطريقه التاليه {4} ومعناه 4 مرات تكرار , او مدى تكرار {2 , 4}
    ومعناه من مرتان الى اربع مرات او مدى غير منتهي {2, } ومعناه على الاقل مرتان تكرار , فلو عملنا التالي (very ){1,3} فسوف يطابق التالي ‘very ‘ و ‘very very ‘ و ‘very very very ‘.
    بداية ونهاية التعابير القياسيه :
    الطريقه التي سأعرضها الان سوف تقوم بتعليمك ان تطابق النص اذا كان في البدايه او النهايه وغيرها , ويمكن ذلك بإستخدام الحرف ^ , ( انتبه , لا تقم بالتعارض مع الطريقه التي بالاعلى ) , هذا الحرف ^ يقوم بالمقارنه في بداية النص والحرف $ يقوم بالمقارنه في نهاية النص. فلو قلنا ^bob فهذا يطابق bob في بداية النص , ولو قلنا com$ فهذا يقارن com في نهاية النص, لو تلاحظ المثال التالي ^[a-z]$ فهذا معناه ان يطابق اي حرف في النص كل على حده
    التفريعات :
    لو اردنا ان نطابق العبارات com او edu او net فسوف نستخدم الطريقه التاليه (com) | (edu) | (net)
    ( ملاحظه: لو ادرت ان تطابق احدى علامات التعابير مثل $ او * فيجب ان تضع امامها العلامه نقره لتكبير أو تصغير الصورة ونقرتين لعرض الصورة في صفحة مستقلة بحجمها الطبيعي , فلو اردت ان تطابق العلامه نقره لتكبير أو تصغير الصورة ونقرتين لعرض الصورة في صفحة مستقلة بحجمها الطبيعي فسوف تقوم بالتالي نقره لتكبير أو تصغير الصورة ونقرتين لعرض الصورة في صفحة مستقلة بحجمها الطبيعي )

    العثور على النصوص بإستخدام التعابير القياسيه :

    هناك نوعان لمطابقة التعابير القياسيه , وهما ereg و eregi وطريقة عمل الاول كالتالي:
    نقره لتكبير أو تصغير الصورة ونقرتين لعرض الصورة في صفحة مستقلة بحجمها الطبيعي
    هذه الداله تبحث في العباره ( search ) عن ما يطابقه بالنمط ( pattern ) , لو قلنا ان لدينا نموذج يضع فيه المستخدم بريد الكتروني ونريد ان نتحقق من صحة البريد الالكتروني , فسوف يكون التعبير القياسي كالتالي:
    نقره لتكبير أو تصغير الصورة ونقرتين لعرض الصورة في صفحة مستقلة بحجمها الطبيعي
    لنقم بشرح كل عباره على حده :
    نقره لتكبير أو تصغير الصورة ونقرتين لعرض الصورة في صفحة مستقلة بحجمها الطبيعي
    هذه العباره تعني ان يبدأ النص على الاقل بحرف واحد او رقم واحد او علامة _ او – او مجموع منهم ثم العلامه @
    نقره لتكبير أو تصغير الصورة ونقرتين لعرض الصورة في صفحة مستقلة بحجمها الطبيعي
    هذا التعبير يطابق الجزء الاول من العنوان مثلا ( yahoo ) ثم العلامه . واستخدمنا \ كما قلنا بالاعلى
    نقره لتكبير أو تصغير الصورة ونقرتين لعرض الصورة في صفحة مستقلة بحجمها الطبيعي
    يطابق نهاية البريد الالكتروني مثلا (com)
    الان طريقة الاستخدام كالتالي
    نقره لتكبير أو تصغير الصورة ونقرتين لعرض الصورة في صفحة مستقلة بحجمها الطبيعي
    الدالة eregi تقوم بنفس العمل , ولكنها غير حساسه لحالة الاحرف.

    استبدال النصوص بإستخدام التعابير القياسيه:

    يمكن استخدام دالة استبدال النصوص ereg_replace او eregi_replace بنفس طريقة استخدام الدالة str_replace التي تعلمناها في الدرس السابق, وكما تعلم الداله eregi_replace هي نفسها الداله ereg_replace ولكن غير حساسة لحالة الاحرف
    نقره لتكبير أو تصغير الصورة ونقرتين لعرض الصورة في صفحة مستقلة بحجمها الطبيعي
    فصل النصوص بإستخدام التعابير القياسيه:
    داله اخرى مفيده في التعابير القياسيه وهي split ,, وطريقتها كالتالي
    نقره لتكبير أو تصغير الصورة ونقرتين لعرض الصورة في صفحة مستقلة بحجمها الطبيعي
    الان لاحظ المثال التالي:
    نقره لتكبير أو تصغير الصورة ونقرتين لعرض الصورة في صفحة مستقلة بحجمها الطبيعي
    وناتج المثال هو كالتالي:
    نقره لتكبير أو تصغير الصورة ونقرتين لعرض الصورة في صفحة مستقلة بحجمها الطبيعي

    سؤال على الدرس :
    1 – قم بالتعديل على تطبيق الدرس السابق , لكي يضمن التحقق من صحة البريد الالكتروني وان يكون الشركه غير مجانيه على سبيل المثال , واذا كانت الرساله تحوي على كلمة قطع غيار فيتم ارسالها الى قسم معين وهكذا

    الـــدرس الــقادم :

    سوف نتعرف في الدرس القادم على التاريخ والتحكم به في لغة PHP

 
صفحة 2 من 4 الأولىالأولى 1234 الأخيرةالأخيرة

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

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