SMF Support > تعليمي (Tutorials)

PHP دورة لكل الراغبين

(1/3) > >>

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

سنقوم الآن بجولة سريعة على الخطة التي سأتبعها في تقديم دروس PHP .
الموضوع متفرع كثيرا لذا قد نضطر لدخول في مواضيع فرعية ليس لها علاقة بالدرس الحالي لكن لها أهميتها .


-تحميل سيرفر محلي لاختبار برامجك عليها
-- الاختبار الأول ( سكيون باستخدام برنامج بسيط يطبع "مرحبا" ,و اختبار كود  phpinfo , و اختبار برنامج phpmyadmin )

الخطة هي :

- أساسيات PHP
-- ترويسات PHP
-- داخل ترويسات PHP و خارج ترويسات PHP , هناك اختلاف و هذه ما يجعل PHP جيد لتطوير المواقع
-- تعليقات , هناك عدة طرق لوضع التعليقات في الكود و لماذا ينبغي علينا فعل ذلك

- توثيق PHP و ما هي الطريقة لكي تصبح متمكن منه

- الخرج و معلومات عن print() و echo()

-تهيئة المتحولات بـالعملية "=" و طباعة المتحولات
-- السلاسل المحرفية  strings
-- الأرقام numbers
-- علامات التنصيص المفردة و المزدوجة

- تهيئة المصفوفات , هناك طريقتين لتهيئة المصفوفات  في  PHP

- التعليمات

- نعليمات التحكم , سوف نناقش أبسط أشكال اتعليمات التحكم
-- الشرطية if/elseif/else
-- الحلقات while
-- التكرار foreach

- تعليمة  POST ضد تعليمة GET في صيغ HTML ( الفرق بينهما )

- كيفية إرسال  تعليمة GET لمعلوماتها

- كيفية إرسال  تعليمة POST لمعلوماتها

- المتحولات المعرفة مسبقا
-- المتحولات العامة register_globals مفعلة \ غير مفعلة ؟
-- $HTTP_*
-- $_*

- التوابع و لماذا هي مهمة


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

حمّلوا الملف الموجود على الرابط التالي :

http://www.easyphp.org/telechargements/dn.php?F=easyphp1-6.php3


EasyPHP سوف يقوم بتحميل  apache, php, mySQL, and phpMyAdmin و كل ذلك بكم كبسة زر

البرنامج أصله فرنسي و التثبيت فرنسي بس ما في فرق غير أنو بتكبسو الترتيب التالي :
"yes", "Suivant", "Oui", "Suivant", "Suivant", "Installer"
ينبغي عليكم الآن أن تكونوا قد ثبتم EasyPHP
و صار عندكن سيرفر على جهازكن

لبدأ التجريب إذا استطعت أن تفعل التالي :

ابدأ --> البرامج --> EasyPHP  --> ومن ثم اضغط على اختصار  البرنامج

ينبغي عليك أن ترى حرف E بجانب الساعة و نقطة حمراء   عليها عم تغمز
إذا ما كانت النقطة عم تغمز  بالزر اليمين على حرف E وبعدها اضغط على "start" .
النقطة الحمراء لازم تغمز هلأ
اضغط زر يمين على E مرة تانية و اختر "configuration" . المربع النصي الذي في الأسفل مكتوب عليه "mySQL arguments" يجب تغييره إلى
"--skip-name-resolve --language=english"
(أزلت "french" و وضعت "english")

كل الملفات التي تريد أن تختبرها ينبغي أن تكون في المجلد التالي :
C:\Program Files\EasyPHP\www

ابدأ بانشاء ملف هناك سميه phpinfo.php
ضمن الملف ضع الكود التالي
(ليس من المهم أن تعرف ماذا يفعل هذا الكود الآن)

<? echo phpinfo(); ?>

إذا كان السيرفر يعمل بدون مشاكل فإن النقطة الحمراء الموجودة على حرف E عم تغمز
افتح متصفح انترنت و اكتب العنوان التالي :
http://127.0.0.1/phpinfo.php

إذا ظهرت معلومات عن PHP إذاً مبروك فإن السيرفر يعمل على جهازك

لنختبر شيء آخر  phpMyAdmin. 
 phpMyAdmin هو عبارة عن واجهة للتعامل مع mySQL مكتوب بلغة PHP و يسمح لك بالتعامل مع الجداول و قواعد المعطيات .
حاول الذهاب إلى العنوان التالي للتأكد من أن كل شيء على ما يرام :
http://127.0.0.1/mysql/
إذا رأيت خرج عادي و ليس مجموعة أخطاء فتأكد أن السيرفر يعمل على جهازك

ملاحظات :
كل الملفات التي تحوي PHP يجب أن تكون في المجلد التالي "C:\Program Files\EasyPHP\www"
و للوصول لاختبار الكود يجب الذهاب للعنوان التالي:


"http://127.0.0.1/(اسم الملف مع اللاحقة)".

عدة أمثلة :

للتعديل
C:\Program Files\EasyPHP\www\file.php
للاختبار
http://127.0.0.1/file.php
للتعديل
To edit: C:\Program Files\EasyPHP\www\new directory\file.php
للاختبار
http://127.0.0.1/new%20directory/file.php
( %20 معناها فراغ بس أنت بتكتب فراغ و المتصفح بيحولك ياها إلى %20)

ملاحظات جانبية :
تستطيع أن تنشأ كود PHP بأي محرر نصوص لا يضيف أي تنسيقات للخطوط مثل notepad أو wordpad
ملف PHP  لازم تكون لاحقته php

Croco:
الشي الرائع عن PHP أنو هي لغة اختصاصية للويب . أي اختصاص اللغة هو  التطوير الانترنتي

حيث تحصل على الكثير من المزايا التي تجعل عملك أبسط .

من الأشياء المتميزة في لغة PHP هو القدرة على الخلط و الدمج مع كود HTML .

إذا كنت متعامل مع HTML , فإنك تعلم أن تعليمات HTML عبارة عن كلمات خاصة تنظم  تنسيق صفحات HTML مصورة ضمن س و س , مثال إذا أردت جعل الخط عريض فإنك تغلفه بتعليمتي b و b  , في حين في لغة PHP لا تعمل هذه الطريقة  بدلا من ذلك فإن كل كود الـ PHP يقع على يمين تعليمة PHP


هناك طريقتين لكتابة تعليمة الـ PHP  (و هناك بدائل لكنها قليلة الاستخدام)

<?php ?> الطريقة الطويلة
أو
<? ?> الطريقة المختصرة

أي شي ضمن هذه التعليمات سوف يتم التعرف عليه كـــكود PHP و أي شي خارجها سوف يتم التعرف عليه كــكود HTML .
مثال بسيط ( ليس من المهم أن تعرف ماذا يفعل التالي الآن)

احفظ في مسار المجلد www الملف التالي
basic.php
بداخله  الكود التالي :


--- Code: ---<html>
<head>
<title></title>
</head>
<body>


<? print 'php code here'; ?>

</body>


</html>
--- End code ---

و عن طريق المتصفح استدعي العنوان التالي :
http://127.0.0.1/basic.php

بعض الناس لا يحبذون هذه الطريقة يفضلون جعل كل الملف عبارة عن كود PHP و من خلال استخدام توابع PHP يضعون الخرج كـ HTML

الشغلة الأساسية الأخرى التي أريد أن أذكره في هذا الدرس هو كيفية كتابة التعليقات ,
التعليق هو طريقة لوضع شرح للكود الذي كتبته و الذي لن يؤثر على الكود الذي كتبته بأية طريقة .
التعليقات تساعد المبرمجين الآخرين من أجل فهم كودك الذي كتبته . لكتابة التعليقات عدة طرق ( احفظ و اختبر التالي )
الملف : comments.php


--- Code: ---<?
print 'hello<br>'; //this is a comment, this line prints "hello"

print 'how are you?<br>'; #this is also a comment, this line prints "how are you?"

print 'I am good thank you<br>'; /* this is a multi-line comment
                                    and can span several lines */
?>
--- End code ---

 أي شيء بعد "//" أو "#" في السطر يفسر كتعليق
و لن يستخدم . أي شي بين "/* */"  سوف يتم تفسيره كتعليق .
التعليقات يمكن أن توضع في أي مكان في الأسطر بين التعليمات أو بعد التعليمات في نفس السطر, لكن ليس قبلها و هذا لا ينطبق على "/* و */" لأن كل الكود الذي بينهما يعتبر تعليق مثال:


--- Code: ---<?
print 'hello<br>'; //this is a comment, this line prints "hello"
//here is another comment tag
print 'how are you?<br>'; #this is also a comment, this line prints "how are you?"
#more comments inbetween
/* a comment before with this type of comment tag */ print 'I am good thank you<br>';
/* this is a multi-line comment and can span several lines */
?>
--- End code ---


أجل كما تفكر سوف نبدأ بالخطوة التالية و التي هي الخرج النصي , لكن هذا سوف يتم إعطاءه بالدرس القادم إن شاء الله 



Croco:
سأقوم الآن بتقديم تعاريف بعض المصطلحات التي سأستخدمها في الدروس بشكل متكرر


ما هو المتحول variable ؟
و هو شيء يستطيع أن يحوي قيمة متغيرة .
تستطيع تخيل المتحول كـصندوق و بداخله القيمة التي نريدها . و الأشياء الموجودة داخل الصندوق ممكن أن تتغير  و  حيث يتم  مسح محتويات الصندوق و وضع محتويات جديدة مختلفة . و هذه هي الطريقة المثلى لكي تتصور المتحول و التي تقوم على أن تعتبر المتحول شي يتحول ليخدم حاجاتك . المتحول لديه خاصتين اسمه و قيمته .


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


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

إلى الأشخاص التواقين لاستكشاف لغة الـ PHP ينبغي عليهم التعامل مع توثيق PHP و API الموجودة غلى الرابط التالي :
http://www.php.net/manual/en/.
في هذا الموقع ستجدون كل توابع PHP و ميزاتها الأساسية . الموقع سوف يساعدكم في أساسيات الكود . الشيء الرائع في استخدام توثيق PHP على الانترنت أنه يتوفر الكثير من التعليقات المقدمة من المستخدمين لكل شيء و التي ستساعدك على عدم الوقوع في أي سوء تفاهم قد يحدث معك .

بعض الأشياء التي قد تفيدك قرائتها للدرس القادم على الرابطين التالين :
http://www.php.net/manual/en/function.print.php

http://www.php.net/manual/en/function.echo.php


Croco:
لقد شرحت لكم ما هو المتحول في الدرس السابق ؛
الآن دعوني أريكم طريقة إنشاء المتحول .

المتحول كما ذكرت في الدرس السابق شيء يستطيع أن يحوي قيمة متغيرة . يتم تمييز المتحول عن كل الأشياء الأخرى في PHP حيث يسبق اسم المتحول إشارة الدولار . مثال ("$name") هو متحول قد يحوي اسم آخر يدل على شيء أو أحد أو مكان  .

تعريف المتحول يتضمن إعطاءه قيمة عن طريق عملية الاسناد ("=") و التي تسند قيمة للمتحول .


ماذا سوف تسند لأي متحول يتطلب قليلا من التفكير .
إذا كنت تسند رقما لمتحول , فلا تحتاج لعلامات تنصيص . إذا كنت تسند سلسة محارف إلى متحول , فإن علامات التنصيص مطلوبة . و بالتالي النوعين الأسايين للمتحولات هما :
سلسلة محرفية ("string") و رقم ("number") و PHP  يفهم أي نوع تريد عن طريق وجود أو عدم وجود علامات التنصيص.
مثال :

--- Code: ---$name = 'andareena'; //this will assign 'andareena' to the variable $name, note the quotes

$number = 12; //this will assign 12 to the variable $number, note the absence of quotes

$othernumber = '12'; //this will assign '12' to the variable $number, not the presence of quotes,

the variable is now interpreted as a string, not as a number

--- End code ---

إذا أردت أن تستخدم علامات تنصيص في السلسة المحرفية يجب عليك استخدام محرف الهروب ("/") كي لا تشوش الـ PHP

--- Code: ---$phrase = 'hi my name\'s Mohammed'; //by placing a \ in front of the single quote,
// the variable will now be set properly and you will not receive errors

--- End code ---

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

-يفسر أولا الجهة اليمنى من عملية الاسناد
-إذا وجد علامة تنصيص مفردة ( ' ) , يعرف أن هذا سلسلة نصية , يستمر حتى يجد علامة تنصيص أخرى
- إذا وجد علامة تنصيص لكنها مهربة أي مسبوقة بـ ( / ) يستمر بالبحث عن علامة تنصيص أخرى
- وجد علامة تنصيص أخرى
-إسناد كل شيء من علامة التنصيص الأولى إلى آخر علامة تنصيص  ('hi my name\'s Mohammed')
للمتحول $phrase - وجد فاصلة منقوطة , هذا السطر قد انتهى , الآن نستطيع الذهاب للسطر الثاني ( الفاصلة المنقوطة تخبر PHP للقفز للتعليمة التالية ) .

أتمنى أن تكونوا معي , حاولت إبقاء كل شي بسيط و سهل قدر الإمكان في حال وجود أي استفسار فأنا جاهز .


الشيء التالي الذي سأتحدث عنه هو  توليد المتحولات . كلمة توليد معناها إدخال أو تعريف شيء ضمن عناصر أو أجزاء أخرى
و بالتالي توليد المتحولات معناها استخدام المتحول ضمن متحول آخر . لنوضح الفكرة لنأخذ المثال التالي :

--- Code: ---$name='Mohammed';
$age='20';

--- End code ---
لاستخدام هذه المتحولات لتعريف متحول جديد ثالث نفعل التالي :

--- Code: ---

$phrase="$name is $age years old";


--- End code ---
لاحظ أننا استخدمنا علامات تنصيص مضاعفة . هناك فرق بين استخدام علامات التنصيص المفردة و المزدوجة عند تعريف المتحولات . علامات التنصيص  المفردة تأخذ كل شيء حرفيا , أي إذا وضعنا أسماء متحولات موجودة ضمنها فإنها لا تتعرف عليها و تأخذها

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

--- Code: ---
$phrase1 = '$name is $age years old'; //this would literally be assigned to $phrase

$phrase2 = "$name is $age years old"; //this would find the values of $name and $phrase
                                                        //and stick them in


--- End code ---

تعليمتي   print() & echo()   و هما تعليمتي إخراج أي وظيفتهما إخراج المعلومات للمستخدم.
من الأفضل أن أبين عمل كل منهما بدون تقديم كثير من الشرح . و هي مثال سيتضمن كل شيء تعلمناه عن المتحولات بالإضافة إلى شرح تعليمتي (تابعي) الإخراج :

--- Code: ---<?

$name = 'John';
$age = '19';
$location = 'Canada';

//print examples
print('Hello'); //outputs "Hello" to the user
print 'Hello'; //the brackets aren't required, also outputs "Hello" to the user
print 'Hello'.' how are you?'; //the "." is the concatination operator, it will join two strings
                               //this will print "Hello how are you?"

//-----------------------------------------------

//echo examples
echo('Hello'); //outputs "Hello" to the user
echo 'Hello'; //the brackets aren't required, also outputs "Hello" to the user
echo 'Hello'.' how are you?'; //the "." is the concatination operator, it will join two strings
                              //this will print "Hello how are you?"
echo 'Hello',' how are you?'; //the "," can also be used with echo() to output a string
                              //this will print "Hello how are you?"

//-----------------------------------------------

//print with variables
print $name . ' is ' . $age . ' and lives in ' . $location;
//will output "John is 19 and lives in Canada"

//-----------------------------------------------

//echo with variables
echo $name . ' is ' . $age . ' and lives in ' . $location;
//will output "John is 19 and lives in Canada"

echo $name , ' is ' , $age , ' and lives in ' . $location;
//will output "John is 19 and lives in Canada"

//-----------------------------------------------

//print and echo with variable interpolation
print "$name is $age and lives in $location";
//will output "John is 19 and lives in Canada"

echo "$name is $age and lives in $location";
//will output "John is 19 and lives in Canada"

?>

--- End code ---



من أجل إظهار علامات التنصيص في السلاسل المحرفية يجب استخدام محرف الهروب كما يمكننا استخدام نوعي علامات التنصيص من أجل استخدام النوع الآخر في السلسلة المحرفية مثال :

--- Code: ---print "I said \"hi\""; //need to escape the double quotes around "hi"
print 'I said "hi"'; //don't need to escape the double quotes around "hi"
print "I said 'hi'"; //don't need to escape the single quotes around 'hi'
print 'I said \'hi\''; //need to escape the single quotes around 'hi'

--- End code ---


هناك فرق في السرعو من ناحية استخدام علامات التنصيص المفردة و المزدوجة كما أن هناك اختلاف بين تعليمتي الخرج echo , print . أولا يحب  أن تعلم أن  استخدام عملية الربط أو الاتصال بين السلاسل المحرفية
 (".") مع تعليمة  print  و (",") مع تعليمة echo أسرع بكثير من استخدام  المتحولات جميعها ضمن علامات التنصيص و ترك مهمة التعرف على المتحولات لمفسر PHP .
كما يجب أن تعلم أن استخدام  echo أسرع بقليل من أستخدام print و ذلك لأ ن الأخيرة ترجع متحولا منطيقا على شكل 0 أو 1 يخبرنا بنجاح عملية الطباعة .

لمزيد من المعلومات أرجو قراءة التالي :
http://www.faqts.com/knowledge_base/view.phtml/aid/1/fid/40

Navigation

[0] Message Index

[#] Next page

Go to full version