استعمل مربع البحث في الاسفل لمزيد من المواضيع
سريع للبحث عن مواضيع في المنتدى
-
11-01-2013, بتوقيت غرينيتش 03:53 PM
#1
الدرس مفصل الشامل لشرح طريقة السبع نقاط الذهبية لتعلم الphp
ط§ظ„ط¯ط±ط³ ط§ظ„ط´ط§ظ…ظ„ ظ„ط´ط±ط* ط§ظ„ط³ط¨ط¹ ظ†ظ‚ط§ط· ط§ظ„ط°ظ‡ط¨ظٹط© ظ„طھط¹ظ„ظ… ط§ظ„php


بسم الله الرحمن الرحيم
كثيرا ممن أرادو تعلم لغة البرمجة ال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 حقيقى ستكتبه بيدك

شاهد المثال العملى من هــنــا
قبل ان أبدأ معكم بما هو جديد عليكم, دعونا نسخن معكم بمثال بسيط
لكود code بسيط فى كيفية كتابة كود code php بسيط, وطبعا حتى نترجم الكود code لشىء حى
سنحتاج لسيرفر SERVER محلى به حزمة ترجمة الphp كappserv و xamp
نشوف الكود code:
رمز Code:
<?php $nickname = 'vista-design'; echo '<p>This is PHP</p>'; echo "<p>My name is $nickname</p>"; echo '<p>i am aweb developer '.$nickname.'</p>'; ?>
طبعا ناتج هذا الكود code سيكون :
رمز Code:
this is php my name is vista-design there is aweb developer called vista-design
قد ترى ان هذا الكود code بسيط, لكن أريدك أن تستغل كل شىء فى هذا الكود code
فهو حصيلة لاشياء كثيرة ستتعلمها من خلاله وهى :
1-طريقة ادراج وسم html مثل <p> بداخل كود code php
2-استخدام المتغير ك nickname$ واستخدامه
3-كيف تضع المتغير ك nickname$ بين كود code html
هل رأيت ما استفدنا من هذا الكود code البسيط..........
ثانيا:ادراج كود code php فى كود codehtml وكيف تحترف ذلك

شاهد المثال العملى من هــنــا
سنتعلم مع هذه الجزئية كيف يمكنك استخدام كود code php داخل كود code html
وتطبيقه
لنأخذ هذا المثال البسيط ونطبق عليه :
رمز Code:
<?php $firstname = 'mohamed'; $secondname = 'amin'; $age = 24; $job = "web developer"; ?> <h1>personal identity</h1> <p>my first name is <?php echo $firstname;?> and the second name is <?php echo $secondname;?> ,the previous was my full name,now my age is <?php echo $age;?> and my current job is <?php echo $job;?> i hope now u knew my full identification in abrief.</p>
وناتج تنفيذ هذا الكود 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 بسيط
ثالثا:المصفوفات واحتراف اللعب بها

تعتبر المصفوفات arrays من الاشياء المهمه والمستخدمه بكثرة,اتقانك التعامل مع المصفوفات سوف يحسن من مستواك البرمجى , لذلك شاهد كيف ستتعلم بنفسك احتراف التعامل مع المصفوفات مع الشرح طريقة الأتى:
كلنا نعلم وعلى سبيل المثال البسيط هذه النوعية من المصفوفات
رمز Code:
$lampstack = array('Linux','Apache','MySQL','PHP');
دعونا من هذه المصفوفه نقوم بتطويرها أكثر معرفة :
رمز Code:
<ul> <?php $lampstack = array('Linux','Apache','MySQL','PHP'); echo '<li>Operating System:'.$lampstack[0] . '</li>'; echo '<li>Server:' . $lampstack[1] . '</li>'; echo '<li>Database:' . $lampstack[2] . '</li>'; echo '<li>Language:' . $lampstack[3] . '</li>'; ?> </ul>
جرب المثال العملى من هـــنــا
طبعا هذه الطريقة تعتبر شىء من الغباء فى البرمجة , لاننا هنا لم نستخدم
قوة المصفوفات فى ان تسهل لنا مهمة عرض البيانات ,
فتخيل مثلا لو انك اردت ان تكتب 100 مصفوفة , هل كل مره ستكتب هذا الكم من الاسطر البرمجية لعمل لست li لعرض بيانات المصفوفة
لذلك سنقوم بتسحين وتسهيل عرض البيانات باستخدام لوب loop ب for
تقوم بتوليد لست li اوتوماتيكية لاى مصفوفة تريد طبع قيم متغيراتها
رمز Code:
ul> <?php $lampstack = array('Linux','Apache','MySQL','PHP'); $labels = array('Operating System','Server','Database','Language'); $length = sizeof($lampstack); for( $i = 0;$i < $length;$i++ ){ echo '<li>' . $labels[$i] . ':' . $lampstack[$i] . '</li>'; } ?> </ul>
المثال العملى من هــنــا
هل ترى بعينك ان الكود code أصبح أكثر ديناميكية وأسهل, فلقد قمنا بعمل لوب باستخدام for بحيث فى كل مره نريد طبع قيم مصفوفة , ستقوم هذه القطعة بعمل ذلك بنفسها بدون الحاجه للطريقة السابقة التقليدية
ولاحظ متغير length$ وظيفته لتحديد حجم المصفوفة لنضع حد أقصى للوب عند استخدام الfor
الحين شوفنا مثال جيد لاستخدام المصفوفات, لكن دعنا نسهل أكثر وأكثر
على أنفسنا هذا المثال عن طريق استخدام المصفوفات الارتباطيه associative arrays والتى يمكننا ان نجمع المصفوفتين السابقتين الخاصة بالمتغيرين lampstack$ والlabels$ فى مصفوفة واحدة فقط
شاهد الكود code:
رمز Code:
<ul> <?php $lampstack = array( 'Operating System' => 'Linux', 'Server' => 'Apache', 'Database' => 'MySQL', 'Language' => 'PHP' ); $length = sizeof($lampstack); $keys = array_keys($lampstack); for( $i = 0;$i < $length;$i++ ){ echo '<li>' . $keys[$i] . ':' . $lampstack[$keys[$i]] . '</li>'; } ?> </ul>
جرب المثال العملى من هـــنــا
لاحظ ان الarray_keys وظيفتها انها ستعطينا مفاتيح keys الموجوده داخل المصفوفة لنستخدمها أثناء عمل لوب للمصفوفة ب for
والمفاتيح فى الكود code السابق أقصد بها operating system,server,database,language
دعنا بعد المثال السابق ان نسهل على أنفسنا أكثر وأكثر وأكثر
بان نسوى لوب للمصفوفة باستخدام foreach بدلا من الfor
شوف الكود code:
رمز Code:
<ul> <?php $lampstack = array( 'Operating System' => 'Linux', 'Server' => 'Apache', 'Database' => 'MySQL', 'Language' => 'PHP' ); foreach( $lampstack as $key => $stackelm ){ echo '<li>' . $key . ':' . $stackelm . '</li>'; } ?> </ul>
شوفت السهوله فى الاستخدام, واحب اذكركم بطريقة استخدام foreach
فبداخل هذه اللوب توجد العبارة
رمز Code:
$lampstack as $key => $stackelm
وتعنى اننا سنعامل المتغير lampstack ك(as) كمفتاح key$ له قيمة وهى stackelm$
بهيك أعتقد بعد تطبيقك وفهم الاكواد السابقة جيدا, سوف تحترف التعامل
مع المصفوفات بشكل جيد.........
رابعا:الحالات الشرطية واللعب بها

تعتبر الحالات الشرطية من الطرق المهمة جدا فى php, خصوصا فى الجانب الامنى
لبرمجتك, سنستعرض معكم أكثر الطرق استخداما للحالات الشرطية
نبدأ بهذا المثال:
رمز Code:
<ul> <?php $lampstack = array( 'Operating System' => 'Linux', 'Server' => 'Apache', 'Database' => 'MySQL', 'Language' => 'PHP' ); if( sizeof($lampstack) > 0 ){ foreach( $lampstack as $key => $stackelm ){ echo '<li>' . $key . ':' . $stackelm . '</li>'; } } ?> </ul>
اول مثال وهو استخدام الsizeof , فهى تستخدم لتحديد للتأكد
من ان هناك قيمة موجوده للمتغير بالفعل اولا, والمثال السابق استخدمناه للتأكد ان المصفوفة بها قيم أكبر من 0 أى ان هناك قيم بالفعل
طريقة أخرى :
رمز Code:
<ul> <?php $lampstack = array( 'Operating System' => 'Linux', 'Server' => 'Apache', 'Database' => 'MySQL', 'Language' => 'PHP' ); if( isset($lampstack) ){ foreach( $lampstack as $key => $stackelm ){ echo '<li>' . $key . ':' . $stackelm . '</li>'; } } ?> </ul>
باستخدام isset ايضا نقدر ان نتأكد من ان المتغير lampstack$ تم ظبطه
وتحديده , اى بالفعل موجود كمتغير له قيمة وهى المصفوفة .......
لذلك تذكر دائما مع الحالة الشرطية ال sizeof وisset فى اى حالة أردت فيها ان تتأكد من كونها تعمل او لها قيمة ام لا..........
خامسا:الوظائف المعقده وسهولة التحكم بها

ما رأيك ان نستخدم الfunction فى تسهيل المثال
السابق فى توليد لوب للمصفوفة
شاهد المثال:
رمز Code:
<?php function renderList($array){ if( sizeof($array) > 0 ){ echo '<ul>'; foreach( $array as $key => $item ){ echo '<li>' . $key . ':' . $item . '</li>'; } echo '</ul>'; } } $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); ?>
بكل بساطة يمكنك باستخدام الفانكشن اللى اسمها renderlist
ان نقوم بعمل لوب لاى مصفوفة باستخدام الامر الاتى
رمز Code:
renderList($xxxx);
حيث xxxxx هى اسم متغير المصفوفة اللى راح نطبق عليه فانكش renderlist
لعمل قائمه للمصفوفة تلقائيا
شاهد المثال العملى من هـــنــا
سادسا:روابط الphp فى المتصفح url parameters والتعامل معها

هذه الجزئية من الاجزاء المهمه والتى لابد ان نفهمها جيدا لنعرف كيف نتعامل معها
وسنعرض سويا أهم الطرق لتعرف كيف تستخدمها فى برمجياتك:
اولا: لابد ان تعلم حتى نجلب اى عنوان من شريط المتصفح , سنستخدم GET_$
مثال لرابط :
رمز Code:
http://localhost/index.php?language=fr&font=large
لو أردنا جلب البارمتر language فسيكون كالاتى:
رمز Code:
$_GET['language']
ولو أردنا جلب البارمتر font فسيكون كالاتى:
رمز Code:
$_GET['font']
دعنا نشاهد كود code بسيط
رمز Code:
<?php $name = 'vista-design'; // اذا لم يتم ايجاد اللغة الانجليزية , يتم التحويل للغة الفرنسية if( !isset($_GET['language']) ){ $welcome = 'Oh, hello there, '; } if( $_GET['language'] == 'fr' ){ $welcome = 'Salut, '; } switch($_GET['font']){ case 'small': $size = 80; break; case 'medium': $size = 100; break; case 'large': $size = 120; break; default: $size = 100; break; } echo '<style>body{font-size:' . $size . '%;}</style>'; echo '<h1>'.$welcome.$name.'</h1>'; ?>
المثال العملى من هــنــا
من الكود 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:
<?php $search_html = filter_input(INPUT_GET, 's', FILTER_SANITIZE_SPECIAL_CHARS); $search_url = filter_input(INPUT_GET, 's', FILTER_SANITIZE_ENCODED); ?> <form action="index.php" method="get"> <div> <label for="search">Search:</label> <input type="text" name="s" id="search" value="<?php echo $search_html;?>"> </div> <div class="bar"><input type="submit" value="search"></div> </form> <?php if(isset($_GET['s'])){ echo '<h2>You searched for '.$search_html.'</h2>'; echo '<p><a href="index.php?search='.$search_url.'"> Search again.</a></p>'; } ?>
جرب المثال العملى من هـــنــا
الكود code السابق عبارة عن فورم للبحث ,لكن فيه ميزه رائعه, وهى اننا
قمنا بتأمين المدخلات اللى راح يتم كتابتها فى مربع البحث بواسطة دالة الفلترة filter_input,هل تعلم انك لو لم يتم استخدام هذه الطريقة,
فمحرك البحث Search Engine هذا أصبح أداه رخيصة وسهله للاستغلال والاختراق
, فالمخترق قد يستغلها بزرع كود code جافا اسكربت خبيث
رمز Code:
index.php?s="<script>
بهيك عرفنا كيف نأمن الurl parameter من الاستغلال
----------
مثال ثانى لاستخدام الurl paramters لترسيخ المعلومة بشكل جيد فى عقلك
فلنفرض اننا لدينا الصفحات الاتيه داخل المجلد navbar
home.php
aboutus.php
services.php
testimonials.php
contact.php
ونريد ان تأخذ الروابط الشكل الاتى:
رمز Code:
http://localhost/navbar/index.php?pg=home http://localhost/navbar/index.php?pg=aboutus http://localhost/navbar/index.php?pg=services http://localhost/navbar/index.php?pg=testimonials http://localhost/navbar/index.php?pg=contact
بدلا ان تأخذ الشكل التقليدى مثل:
رمز Code:
http://localhost/navbar/home.php http://localhost/navbar/aboutus.php http://localhost/navbar/services.php http://localhost/navbar/testimonials.php http://localhost/navbar/contact.php
دعونا نعرف كيفية عمل هذه الطريقة سويا...........
اول كود code ال html للصفحة :
رمز Code:
<p style="display:block;padding:0px 0px 20px 0px;"><a href="?pg=home" title="Home">Home</a> | <a href="?pg=about_us" title="About us">About us</a> | <a href="?pg=services" title="Services">Services</a> | <a href="?pg=testimonials" title="Testimonials">Testimonials</a> | <a href="?pg=contact_us" title="Contact us">Contact us</a></p>
كود code الphp الخاص بصفحة index.php
رمز Code:
<?php if (isset($_GET['pg']) && $_GET['pg'] != ""
{ $pg = $_GET['pg']; if (file_exists('navbar/'.$pg.'.php')) { @include ('navbar/'.$pg.'.php'); } elseif (!file_exists('navbar/'.$pg.'.php')) { echo 'Page you are requesting doesn´t exist'; } } else { @include ('navbar/home.php'); } ?>
عذرا على عدم وضع المثال العملى حتى لا يتم استغلاله كما تعلمون 
شرح طريقة الكود code:
التأكد من وجود بارمتر وانه غير فارغ
رمز Code:
if (isset($_GET['pg']) && $_GET['pg'] !=""
{
اذا كانت الجمله غير صحيحه, سيعود للرئيسية
رمز Code:
} else { @include ('navbar/home.php'); }
اما اذا كانت صحيحة, سيرفق البارمتر الموجود بالمتصفح فى المتغير
pg$
رمز Code:
$pg = $_GET['pg'];
ثم بعدها يتم التأكد ان كان الملف المراد جلبه موجود ام لا
رمز Code:
if (file_exists('navbar/'.$pg.'.php')) {
اذا كان موجود بالفعل , سيتم جلبه
رمز Code:
@include ('navbar/'.$pg.'.php');
اما اذا كان لا, فسيتم اعطاء عبارة بعدم وجود الملف
رمز Code:
} elseif (!file_exists('navbar/'.$pg.'.php')) {
بهيك أعتقد نكون قد هضمنا نقطة url parameters بشكل جيد
سابعا:مكتبة الcurl وجلب البيانات من اى موقع

من اجمل ما تتميز به الphp, هى قدرتها على قراءة الملفات واستعلامها من مواقع أخرى, ولعل خاصية الاستعلام الخارجية remote قد يتم ايقافها
عن طريق السيرفر SERVER للحماية, الا ان كثير من المواقع نجد ان الخاصية هذه متاحه, كمثال من هــــنــــا عند الضغط على خاصية ارفع ملفاتك, ستجدانه تم
جلب موقع اخر بداخل موقع اخر, هذه الطريقة الموجوده فى المثال السابق
تم عملها باستخدام true box فى الjquery,لكن ما رأيك ان نعطيكم الطريقة الرائعه من خلال php لجلب بيانات اى موقع ,
رمز Code:
<?php // الموقع المراد فتحه $url = 'http://www.advpphp.com'; // ابدأ الدالة $ch = curl_init(); // اخبار الداله ما هو العنوان curl_setopt($ch, CURLOPT_URL, $url); // اخبار الداله بانك تريد العوده من الموقع بمحتواه curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); // ابدأ تنفيذ الدالة $output = curl_exec($ch); // انهاء استعلام الدالة curl_close($ch); // اظهار ناتج الاستعلام echo $output; ?>
يمكن تجربة المثال عمليا من هـــنـــا
هذه الطريقة يمكنك تطبيقها على اى موقع تريده , بشرط ان دالة الcurl
فى php شغاله على السيرفر SERVER وغير متوقفه
أيضا يمكننا كبعض التطوير ان نجلب البيانات على هيئة لست بعناوين محتوى الموقع
رمز Code:
<?php // حدد الموقع $url = 'http://www.advphp.com'; // ابدأ الدالة $ch = curl_init(); // اخبار الدالة ما هو نوعية عنوان الموقع curl_setopt($ch, CURLOPT_URL, $url); // اخبار الدالة بانك تريد العوده بمحتويات الموقع curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); // ابدأ تنفيذ الدالة $output = curl_exec($ch); // انهاء الاستعلام curl_close($ch); t if($_GET['filter'] == 'links'){ echo '<ul>'; preg_match_all('/<a[^>]+>[^<\/a>]+<\/a>/msi',$output,$links); foreach($links[0] as $l){ echo '<li>' . $l . '</li>'; } echo'</ul>'; } else { echo $output; } ?>
حاليا يتم استخدام api او كما تسمى واجهة interface مخاطبة المبرمج ,كما يوجد فى المواقع الكبرى ك twitter
بهيك يكون انتهى درس مفصلنا , على أمل ان تكونوا استفدتوا منه جيدا.....
أخوكم vista-design
التعديل الأخير كان بواسطة vista-design; 18 - 11 - 2014 الساعة 16:49

©المشاركات المنشورة تعبر عن وجهة نظر صاحبها فقط، ولا تُعبّر بأي شكل من الأشكال عن وجهة نظر إدارة المنتدى©
المواضيع المتشابهه
-
بواسطة Chakira في المنتدى لغات البرمجه للويب
مشاركات: 0
آخر مشاركة: 11-01-2013, بتوقيت غرينيتش 04:17 PM
-
بواسطة Chakira في المنتدى مدونة وورد بريس WordPress
مشاركات: 0
آخر مشاركة: 11-01-2013, بتوقيت غرينيتش 08:50 AM
-
بواسطة romaissa في المنتدى مدونة وورد بريس WordPress
مشاركات: 0
آخر مشاركة: 11-01-2013, بتوقيت غرينيتش 08:49 AM
-
بواسطة walid في المنتدى مدونة وورد بريس WordPress
مشاركات: 0
آخر مشاركة: 11-01-2013, بتوقيت غرينيتش 08:48 AM
-
بواسطة salima في المنتدى المجلات الإلكترونيه وبرامج إدارة المحتوى
مشاركات: 0
آخر مشاركة: 11-01-2013, بتوقيت غرينيتش 07:25 AM
ضوابط المشاركة
- لا تستطيع إضافة مواضيع جديدة
- لا تستطيع الرد على المواضيع
- لا تستطيع إرفاق ملفات
- لا تستطيع تعديل مشاركاتك
-
قوانين المنتدى