http://www.dzbatna.com/images/icons/iconrote.gif ط§ظ„ط¯ط±ط³ ط§ظ„ط´ط§ظ…ظ„ ظ„ط´ط±ط* ط§ظ„ط³ط¨ط¹ ظ†ظ‚ط§ط· ط§ظ„ط°ظ‡ط¨ظٹط© ظ„طھط¹ظ„ظ… ط§ظ„php
http://www.advphp.com/imgup/images/5...0141835080.jpg
http://www.advphp.com/imgup/images/2...1987037191.jpg
بسم الله الرحمن الرحيم
كثيرا ممن أرادو تعلم لغة البرمجة الphp يواجهوا صعوبات فى تطبيقها, خصوصا
لو أرادوا ان يستغلوا ما تعلموه بأنتاج شىء حى,انطلاقا من هذه المشكله,
أحببت ان أقدم لكم هذا الدرس مفصل والذى سيحل لكم هذه المشكلة, والدرس مفصل سوف
يفتح لكم آفاق كثيره فى فهم الphp بشكل جيد, لانى سأستعرض لكم الامثلة التقليدية الغير معقدة, وسنتدرج فى صعوبتها لتفهم كيف تلعب وتتحكم
أنت بالphp وأن تخضعها لتفكيرك وخبرتك ,وليس ان تكون انت خاضع لها,
اولا دعونا نستعرض ما راح نشرح طريقةه فى الدرس مفصل كفهرس منظم للدرس مفصل:
1-اول كود code حقيقى ستكتبه بيدك
2-ادراج كود code php فى كود codehtml وكيف تحترف ذلك
3-المصفوفات arrays وكيف تحترف التعامل بكافة أنواعها
4-الحالات الشرطية if وكيف تستخدم أكثر من أسلوب لها
5-الوظائف المعقده functions وكيف تخضعها لك بسهوله
6-روابط الphp فى المتصفح php url parameter وكيف تتعامل معها
7-مكتبة الcurl وجلب البيانات من اى موقع(الاساسيات والاحتراف)
وقبل أن أبدأ , عليكم بتنفيذ هذه الملاحظات جيدا وبتركيز عالى:
1-اولا كل كود code عليك بكتابته بيدك على الاقل 3 مرات
2-وأنت بتكتب الكود code, أفهم ما تكتبه وحاول تحفظ على الاقل الطريقة
3-بعد تنفيذ كافة أمثلة الدرس مفصل, حاول ان تمسك عنوان كل نقطة فى الدرس مفصل, وتقوم بكتابة كود code جديد يكون بنفس الطريقة دون النظر للامثلة
نبدأ على بركة الله ........
اولا: اول كود code حقيقى ستكتبه بيدك
http://www.advphp.com/imgup/images/9...5081438516.jpg
شاهد المثال العملى من هــنــا
قبل ان أبدأ معكم بما هو جديد عليكم, دعونا نسخن معكم بمثال بسيط
لكود code بسيط فى كيفية كتابة كود code php بسيط, وطبعا حتى نترجم الكود code لشىء حى
سنحتاج لسيرفر SERVER محلى به حزمة ترجمة الphp كappserv و xamp
نشوف الكود code:
رمز Code:
This is PHP'; echo "My name is $nickname
"; echo 'i am aweb developer '.$nickname.'
'; ?>
طبعا ناتج هذا الكود code سيكون :
رمز Code:
this is php my name is vista-design there is aweb developer called vista-design
قد ترى ان هذا الكود code بسيط, لكن أريدك أن تستغل كل شىء فى هذا الكود code
فهو حصيلة لاشياء كثيرة ستتعلمها من خلاله وهى :
1-طريقة ادراج وسم html مثلبداخل كود code php
2-استخدام المتغير ك nickname$ واستخدامه
3-كيف تضع المتغير ك nickname$ بين كود code html
هل رأيت ما استفدنا من هذا الكود code البسيط..........
ثانيا:ادراج كود code php فى كود codehtml وكيف تحترف ذلك
http://www.advphp.com/imgup/images/8...6843245834.jpg
شاهد المثال العملى من هــنــا
سنتعلم مع هذه الجزئية كيف يمكنك استخدام كود code php داخل كود code html
وتطبيقه
لنأخذ هذا المثال البسيط ونطبق عليه :
رمز Code:
personal identity
my first name is and the second name is ,the previous was my full name,now my age is and my current job is i hope now u knew my full identification in abrief.
وناتج تنفيذ هذا الكود code:
رمز Code:
personal identity my first name is mohamed and the second name is amin ,the previous was my full name,now my age is 24 and my current job is web developer.i hope now u knew my full identification in abrief
المثال العملى من هــنــا
طبعا الكود code عبارة عن تعريف باسمى وسنى ووظيفتى بالانجليزية ,
من هذا الكود code البسيط , أكيد ستتعلم الاتى:
1-كيف ادرجنا متغير php وتنفيذه داخل كود code html بسيط
ثالثا:المصفوفات واحتراف اللعب بها
http://www.advphp.com/imgup/images/6...4345145779.jpg
تعتبر المصفوفات arrays من الاشياء المهمه والمستخدمه بكثرة,اتقانك التعامل مع المصفوفات سوف يحسن من مستواك البرمجى , لذلك شاهد كيف ستتعلم بنفسك احتراف التعامل مع المصفوفات مع الشرح طريقة الأتى:
كلنا نعلم وعلى سبيل المثال البسيط هذه النوعية من المصفوفات
رمز Code:
$lampstack = array('Linux','Apache','MySQL','PHP');
دعونا من هذه المصفوفه نقوم بتطويرها أكثر معرفة :
رمز Code:
Operating System:'.$lampstack[0] . ''; echo '
- Server:' . $lampstack[1] . '
'; echo '- Database:' . $lampstack[2] . '
'; echo '- Language:' . $lampstack[3] . '
'; ?>
جرب المثال العملى من هـــنــا
طبعا هذه الطريقة تعتبر شىء من الغباء فى البرمجة , لاننا هنا لم نستخدم
قوة المصفوفات فى ان تسهل لنا مهمة عرض البيانات ,
فتخيل مثلا لو انك اردت ان تكتب 100 مصفوفة , هل كل مره ستكتب هذا الكم من الاسطر البرمجية لعمل لست li لعرض بيانات المصفوفة
لذلك سنقوم بتسحين وتسهيل عرض البيانات باستخدام لوب loop ب for
تقوم بتوليد لست li اوتوماتيكية لاى مصفوفة تريد طبع قيم متغيراتها
رمز Code:
ul> ' . $labels[$i] . ':' . $lampstack[$i] . ''; } ?>
المثال العملى من هــنــا
هل ترى بعينك ان الكود code أصبح أكثر ديناميكية وأسهل, فلقد قمنا بعمل لوب باستخدام for بحيث فى كل مره نريد طبع قيم مصفوفة , ستقوم هذه القطعة بعمل ذلك بنفسها بدون الحاجه للطريقة السابقة التقليدية
ولاحظ متغير length$ وظيفته لتحديد حجم المصفوفة لنضع حد أقصى للوب عند استخدام الfor
الحين شوفنا مثال جيد لاستخدام المصفوفات, لكن دعنا نسهل أكثر وأكثر
على أنفسنا هذا المثال عن طريق استخدام المصفوفات الارتباطيه associative arrays والتى يمكننا ان نجمع المصفوفتين السابقتين الخاصة بالمتغيرين lampstack$ والlabels$ فى مصفوفة واحدة فقط
شاهد الكود code:
رمز Code:
'Linux', 'Server' => 'Apache', 'Database' => 'MySQL', 'Language' => 'PHP' ); $length = sizeof($lampstack); $keys = array_keys($lampstack); for( $i = 0;$i < $length;$i++ ){ echo '
- ' . $keys[$i] . ':' . $lampstack[$keys[$i]] . '
'; } ?>
جرب المثال العملى من هـــنــا
لاحظ ان الarray_keys وظيفتها انها ستعطينا مفاتيح keys الموجوده داخل المصفوفة لنستخدمها أثناء عمل لوب للمصفوفة ب for
والمفاتيح فى الكود code السابق أقصد بها operating system,server,database,language
دعنا بعد المثال السابق ان نسهل على أنفسنا أكثر وأكثر وأكثر
بان نسوى لوب للمصفوفة باستخدام foreach بدلا من الfor
شوف الكود code:
رمز Code:
'Linux', 'Server' => 'Apache', 'Database' => 'MySQL', 'Language' => 'PHP' ); foreach( $lampstack as $key => $stackelm ){ echo '
- ' . $key . ':' . $stackelm . '
'; } ?>
شوفت السهوله فى الاستخدام, واحب اذكركم بطريقة استخدام foreach
فبداخل هذه اللوب توجد العبارة
رمز Code:
$lampstack as $key => $stackelm
وتعنى اننا سنعامل المتغير lampstack ك(as) كمفتاح key$ له قيمة وهى stackelm$
بهيك أعتقد بعد تطبيقك وفهم الاكواد السابقة جيدا, سوف تحترف التعامل
مع المصفوفات بشكل جيد.........
رابعا:الحالات الشرطية واللعب بها
http://www.advphp.com/imgup/images/9...5970087746.jpg
تعتبر الحالات الشرطية من الطرق المهمة جدا فى php, خصوصا فى الجانب الامنى
لبرمجتك, سنستعرض معكم أكثر الطرق استخداما للحالات الشرطية
نبدأ بهذا المثال:
رمز Code:
'Linux', 'Server' => 'Apache', 'Database' => 'MySQL', 'Language' => 'PHP' ); if( sizeof($lampstack) > 0 ){ foreach( $lampstack as $key => $stackelm ){ echo '
- ' . $key . ':' . $stackelm . '
'; } } ?>
اول مثال وهو استخدام الsizeof , فهى تستخدم لتحديد للتأكد
من ان هناك قيمة موجوده للمتغير بالفعل اولا, والمثال السابق استخدمناه للتأكد ان المصفوفة بها قيم أكبر من 0 أى ان هناك قيم بالفعل
طريقة أخرى :
رمز Code:
'Linux', 'Server' => 'Apache', 'Database' => 'MySQL', 'Language' => 'PHP' ); if( isset($lampstack) ){ foreach( $lampstack as $key => $stackelm ){ echo '
- ' . $key . ':' . $stackelm . '
'; } } ?>
باستخدام isset ايضا نقدر ان نتأكد من ان المتغير lampstack$ تم ظبطه
وتحديده , اى بالفعل موجود كمتغير له قيمة وهى المصفوفة .......
لذلك تذكر دائما مع الحالة الشرطية ال sizeof وisset فى اى حالة أردت فيها ان تتأكد من كونها تعمل او لها قيمة ام لا..........
خامسا:الوظائف المعقده وسهولة التحكم بها
http://www.advphp.com/imgup/images/4...2023448608.jpg
ما رأيك ان نستخدم الfunction فى تسهيل المثال
السابق فى توليد لوب للمصفوفة
شاهد المثال:
رمز Code:
0 ){ echo ''; foreach( $array as $key => $item ){ echo '
'; } } $lampstack = array( 'Operating System' => 'Linux', 'Server' => 'Apache', 'Database' => 'MySQL', 'Language' => 'PHP' ); renderList($lampstack); $awfulacting = array( 'Natalie Portman' => 'Star Wars', 'Arnold Schwarzenegger' => 'Batman and Robin', 'Keanu Reaves' => '*' ); renderList($awfulacting); ?>- ' . $key . ':' . $item . '
'; } echo '
بكل بساطة يمكنك باستخدام الفانكشن اللى اسمها renderlist
ان نقوم بعمل لوب لاى مصفوفة باستخدام الامر الاتى
رمز Code:
renderList($xxxx);
حيث xxxxx هى اسم متغير المصفوفة اللى راح نطبق عليه فانكش renderlist
لعمل قائمه للمصفوفة تلقائيا
شاهد المثال العملى من هـــنــا
سادسا:روابط الphp فى المتصفح url parameters والتعامل معها
http://www.advphp.com/imgup/images/0...0928177425.jpg
هذه الجزئية من الاجزاء المهمه والتى لابد ان نفهمها جيدا لنعرف كيف نتعامل معها
وسنعرض سويا أهم الطرق لتعرف كيف تستخدمها فى برمجياتك:
اولا: لابد ان تعلم حتى نجلب اى عنوان من شريط المتصفح , سنستخدم GET_$
مثال لرابط :
رمز Code:
http://localhost/index.php?language=fr&font=large
لو أردنا جلب البارمتر language فسيكون كالاتى:
رمز Code:
$_GET['language']
ولو أردنا جلب البارمتر font فسيكون كالاتى:
رمز Code:
$_GET['font']
دعنا نشاهد كود code بسيط
رمز Code:
body{font-size:' . $size . '%;}'; echo ''.$welcome.$name.'
'; ?>
المثال العملى من هــنــا
من الكود code السابقة واستخدام الswitch يمكننا التغيير بين أكثر من عنوان
أمثله :
http://localhost:8888/index.php
http://localhost:8888/index.php?language=fr
http://localhost:8888/index.php?language=fr&font=large
تمعن فى الامثلة السابقة حتى تفهم هذه الطريقة قبل ان اشرح طريقة النقطه القادمه........
تمام الان, بعد ان فهمت الامثلة السابقة, لابد ان تعلم ان هذا الكود code
البسيط يحتاج لبعض التأمين من الاستغلال بحقنه بكود code خارجى او التعديل عليه ليتم اختراقه او فيما يسمى ب xss
لذلك حتى نقوم بتأمين تلك الطريقة , علينا بفلترة هذه البيانات وحمايتها,وذلك باستخدام أحد طرق الفلترة فى php والتى يمكنك
الاطلاع على شرح طريقةها من هـــنـــا
نأخذ المثال الاتى:
رمز Code:
You searched for '.$search_html.''; echo ''; } ?>
جرب المثال العملى من هـــنــا
الكود code السابق عبارة عن فورم للبحث ,لكن فيه ميزه رائعه, وهى اننا
قمنا بتأمين المدخلات اللى راح يتم كتابتها فى مربع البحث بواسطة دالة الفلترة filter_input,هل تعلم انك لو لم يتم استخدام هذه الطريقة,
فمحرك البحث Search Engine هذا أصبح أداه رخيصة وسهله للاستغلال والاختراق
, فالمخترق قد يستغلها بزرع كود code جافا اسكربت خبيث
رمز Code:
index.php?s="