مشاهدة النسخة كاملة : دروس Php للمبتدئين
طالب علم
07-09-2003, 01:43 AM
السلام عليكم ورحمة الله وبركاتة....
إخواني الاعضاء....
سوف أقوم بإذن الله بنقل العديد من الدروس الخاصة بلفة الـ php من موقع قرية الـPhp (http://www.phpvillage.com) نقل كامل وجميع الحقوق محفوظة للموقع السابق....
وأحببت ان أقوم بنقل الدروس..... للإستفادة.....
وهي دروس رائعة من نخبة أروع من الكتاب....
تحياتي
طالب علم
07-09-2003, 01:50 AM
بقلم : OneTo9 الــــــــدرس الــــــــــأول
مقدمة
بسم الله الرحمن الرحيم والصلاة والسلام على اشرف الانبياء والمرسلين ، في هذه المقدمة سنتطرق الى مفاهيم أساسية عن لغة البرمجة PHP وقواعد البيانات MySQL وطريقة إعداد الجهاز ليعمل كخادم ( Server ) وفي النهاية تجربة الجهاز الخادم بكتابة سكربت بسيط مع شرح طريقة عمل مثل هذه السكربات .
- ما هي الـ PHP ؟
بدأت اللغة في الظهور في عام 1994 على يد Rasmus Lerdorf ومن ثم أخذت في التطور شيئاً فشيئاً ، وفي عام 2001 بلغت عدد المواقع المصممة بالـ PHP تقريبا 6 ملايين موقع وهذا الرقم في تصاعد مستمر .
PHP كانت تعني Personal Home Page وتم تغيرها لـ PHP Hypertext Preprocessor وهو إسمها المعروف الآن ، أما موقعها الرسمي فهو www.php.net .
لغة الـ PHP تعتبر من لغات البرمجة لجهة الخادم ( server-side scripting ) وصممت خصيصاً للانترنت ، أما ما نعنيه بانها لغة برمجة لجهة الخادم فهو أن ترجمة السكربت تتم عن طريق مترجم الـ PHP الموجود في الخادم ( Server ) ، ومن ثم يرسلها الخادم لصفحة الوب لتُعرض كـ HTML أو غيرها ، لذلك فالسكربت يُترجم في كل مرة يتم فيها تحميل الصفحة ولا يعتبر هذا عيباً ، لأن الترجمة تتم بسرعة ، وزوار موقعك لا يمكنهم الشعور بذلك الفرق بينها وبين الـ HTML ، إلا إن كانت التطبيقات كثيرة نسبياً .
- ما هي الـ MySQL ؟
هي قاعدة بيانات علائقية relational database management system أو اختصـاراًRDBMS ، وقواعد البيانات عموماً تتيح لك التخزين والبحث وتنظيم البيانات في جداول ، كما تتيح لأكثر من مستخدم الوصول لتلك البيانات بكل سهولة .
كانت بدايتها في عام 1996، وهي تعتمد على Structured Query Language SQL التي تعتبر قاعدة البيانات المخصصة للعمل على الوب ، ولذلك حصلت الـ MySQL على جوائز عديدة لتميزها .
يتبع.....
طالب علم
07-09-2003, 02:18 AM
الــتـــــكــــمــــــلـــــــة
عملية الإعداد في الـ Windows
قبل البدء في عملية الأعداد يجب أن تعرف أنه من المهم عمل هذه الخطوات لتجربة السكربات على جهازك الشخصي وبالتالي توفير الوقت والمال ، لان البديل هو حجز مساحة على الانترنت للتجارب .
في بداية الإعداد سنحتاج إلى ما يلي :
- Apache Server ويمكنك تحميله من [ هنا (http://www.apache.org/) ] .
- PHP 4 ويمكنك تحميله من [ هنا (http://www.php.net/) ] .
- MySQL وتجده في هذا الرابط [ هنا (http://www.mysql.com/) ] .
- تركيب الـ Apache Server .
قم باتمام عميلة تركيب السيرفر كأي برنامج أخر على الوندوز ولكن عند الوصول الى مكان تركيب السيرفر فيُفضل إختيار C:\apache بدلاً من وضعه داخل مجلد Program Files وذلك لتسهيل عملية الوصول الى دليل السيرفر والذي سيتم تشغيل سكربات الـ PHP من داخله .
- تركيب الـ PHP .
1. اختر مكان فك ضغك الملف هو C:\Php وذلك كما ورد سابقا لتسهيل عملية الوصول .
2. انسخ الملف php.ini-dist الى دليل الوندوز C:\Windows وقم بتغيير اسمه الى php.ini .
3. قم بنسخ الملف php4ts.dll إلى دليل C:\Windows\system .
4. إجراء بعض التعديلات على الملف php.ini وسوف نتطرق إليها لاحقاً .
- تركيب الـ MySQL Database .
قم بفك ضغط الملف وبعد ذلك شغّل برنامج الـ Setup لاتمام عميلة التركيب ، ويفضل اختيار الدليل Mysql تحت الـ C:\ مبـاشرة ، ليصبح كالتالي : C:\Mysql .
بعد ذلك افتح شاشة الدوس MS DOS بالذهاب إلى ابدأ ومن ثم تشغيل وكتابة الامر command ، قم بكتابة ما يلي :
Code .. -----------------------------------------------------
C:\mysql\bin> mysqld-nt --install
-----------------------------------------------------
واذا كان لديك مشكلة في تغشيل الملف قم بتجربة كتابة ما يلي :
Code .. -----------------------------------------------------
C:\mysql\bin> mysqld --standalone
-----------------------------------------------------
يتبع......
Abo_ELleal
07-09-2003, 02:25 AM
شكراً لك أخي صهيب علي هذا النقل المفيد
وبارك الله فيك أخي
طالب علم
07-09-2003, 12:11 PM
العفو أخوي علي......
تحياتي
طالب علم
07-09-2003, 12:16 PM
الــتـــــكــــمــــــلـــــــة
- إعدادات الـ Apache Server :
يجب أن يكون الـ Apache Server لا يعمل ، إن كان يعمل قم باغلاقه ، ثم إذهب إلى دليل الـ Apache وادخل الدليل الفرعي conf ستجد عدة ملفات من بينها httpd.conf وهو الملف الخاص باعدادات السيرفر ، قم بفتح الملف واضف اليه الأسطر التالية في نهاية الملف :
Code .. ____________________________________
AddType application/x-httpd-php .php
AddType application/x-httpd-php .php3
LoadModule php4_module c:/php/sapi/php4apache.dll
__________________________________________
بعد ذلك ابحث عن السطر الذي يحوي الـ DocumentRoot أو الدليل الحاوي لملفات الـ PHP ، قم بتعديل السطر ليكون كالتالي :
Code .. ____________________________________
DocumentRoot "C:/Apache/htdocs"
__________________________________________
وهذا هو الدليل الذي ستوضع فيه جميع السكربات ليتم إرسـالها للمترجم وبعد ذلك استعادتها وإرسالها للمتصفح لتُعرض كصفحة وب ، مع ملاحظة أن هذا الدليل يمـكن تغييره ، ولكن إعتماداً على ما سبق ذكره ، فإن هذا الإعداد هو الصحيح .
يتبع...
طالب علم
07-09-2003, 12:27 PM
الــتـــــكــــمــــــلـــــــة
- إعدادات الـ MySQL .
بعد إتمام عملية التركيب والتأكد منها قم بفتح الدوس MS DOS كما ذكرنا سـابقاً ، وأدخل الدليل C:\Mysql\bin كما وضحنا سابقاً ، بعد ذلك أكتب الأمر التالي :
Code .. ____________________________________
Mysqladmin –u root password "كلمة السر الجديدة";
__________________________________________
وهذا الأمر كما هو واضح يعمل على اختيـار كلمة المرور الخاصة بقاعدة البيانات ولـذلك سيكون إسم المستخدم هو root وكلمة المرور هي ما قمت باختياره مع ملاحظة أن الأمر يكتب كمـا هو أي بعلامـات التنصيص .
وللتأكد من أن العملية تمت بنجاح قم بكتابة ما يلي :
Code .. ____________________________________
C:\mysql\bin> Mysqladmin –u root reload
إن كانت العملية ناجحة ، فسيعطيك رسـالة خطأ !
إلى هنا نصل الى نهاية إعدادات الـ MySQL Datebse وبقي أن نذكر كيفية تشغيلها ،
ادخل الـ MS DOS وأكتب ما يلي :
Code .. ____________________________________
C:\mysql\bin> mysqld
__________________________________________
أو في الحالة الثانية (mysqld -- standalone) :
Code .. ____________________________________
C:\mysql\bin> mysqld-nt
__________________________________________
وفي كل مرة ترغب في تشغيل الـMySQL يجب عليك كتابة هذا الأمر .
يتبع.....
طالب علم
07-09-2003, 12:35 PM
الــتـــــكــــمــــــلـــــــة
أول سكربت
بقي أن نذكر نقطة اخيرة وهي التعديل على ملف الـ php.ini والذي تم نقله الى دليل الوندوز ، قم بالبحث عن extension_dir وعدلها لتصبح extension_dir = c:\php .
بعد إتمام كل الإعدادات السـابقة بقي أن نجرّب تشغيل أحد السكربات ، فقط لنثبت أن ما قمنا به كان صحيحاً ، مع ملاحظة أنني لن اتطرق إلى شرح كتابة السكربت .
قم بالدخول إلى أي محرر نصوص مثلاً المفكرة ، وأكتب الأسطر التالية :
Code .. ____________________________________
<?
phpinfo();
?>
__________________________________________
بعد ذلك قم بحفظ الملف بإسم info.php وضعه في الدليل الخاص في السيرفر كما مر معنا وهو C:\Apache\httdocs ، إذهب إلى المتصفح وادخل العنوان التالي :
Code .. ____________________________________
http://127.0.0.1/info.php
__________________________________________
إذا تم عرض هذه الصفحة :
http://www.phpvillage.com/info.jpg
فلله الحمد تمت الإعدادت بنجاح أما إن كـان لديك مشكلة ولا تعلم ما هي قم بمراجعة الإعدادت من جديد ، أو راسلنا لمساعدتك .
في نهاية هذا الدرس الشكر لله وحده ، واتمنى تقييم الدرس وارسال الملاحظات أو الاقترحات الينا لتطوير العمل في المستقبل .
نـــــهـــــــــــايـــــــــــة الـــــــــدرس الأول
Ahmad Abufarha
07-09-2003, 03:12 PM
مشكور اخي الكريم طالب علم ..
بالفعل مجهودك رائع و واضح جدا في المنتدى ...
تحياتي...:)
طالب علم
07-09-2003, 05:48 PM
العفو أخي الكريم.....
وإنتظروا المزيد بإذن الله.......
تحياتي
طالب علم
07-09-2003, 05:59 PM
بقلم : OneTo9 الـــــــــــــدرس الـــــــثـــــــــاني
مفاهيم اساسية
بسم الله الرحمن الرحيم والصلاة والسلام على اشرف الانبياء والمرسلين اما بعد ، فبعد ان تحدثنا عن اعداد الجهاز الشخصي للعمل مع الـ PHP ، نتحدث اليوم عن المفاهيم الاساسية للغة ، لتكون البوابة الاولى للدخول والتعامل معها .
- طريقة كتابة السكربات في اللغة :
ربما تكون قد لاحظت في الدرس الأول عندما تطرقنا الى تجربة الاعدادات قمنا بكتابة اول سكربت كالتالي :
Code .. ____________________________________
<?
phpinfo();
?>
__________________________________________
وهذا السكربت البسيط يبين كيفية كتابة السكربات في اللغة بشكل واضح ، ففي بداية كل سكربت يجب أن نكتب ?> وفي نهاية السكربت نكتب <? مع ملاحظة أن هذه العلامات أو الـ Tags لها اكثر من صورة ، ولكن صورتها الشائعة هي ما ذكرها ، أما بقية الـ Tags فهي كما يلي مع بيان فوائدها واستخداماتها :
1 – <? ?> وهو الشكل الشائع .
2 – <? php?> ويستخدم في حال وجود الـ XML .
3 – <script language='php'> </script> يمكن أن يستخدم مع الـ ********** .
4 – <% %> وهذا الـ Tags هو ما يستخدم في ASP .
وكمثال على كتابة السكربات :
Code .. ____________________________________
<?
نكتب السكربت هنا ..
?>
__________________________________________
يتبع....
rajeh1
07-09-2003, 06:37 PM
شكراً أخي الكريم على الجهد المتواصل
بارك الله فيك
تحياتي
طالب علم
07-09-2003, 07:03 PM
العفو أخوي.....
وإنتظروا التكملة.....
تحياتي
طالب علم
07-09-2003, 11:07 PM
تــــــــــكـــــــمــــــاـــة
الدمج بين الـ HTML و الـ PHP
وبالامكان كتابة صفحات الـ HTML بلغة الـ PHP بطريقتين ، أما أول طريقة فهي في الكود التالي :
Code .. ____________________________________
<p> تاريخ اليوم هو :
<?php print(date("I F j. Y")); ?>.
<p>
__________________________________________
هذه الطريقة تستعمل عادة في حالة وجود جملة قصيرة من الـ PHP يراد اضـافتها الى صفحة HTML .
اما الطريقة الثانية فهي المستخدمة في مواقع كبيرة الحجم نسبياً وتستعمل قواعد البيانات ، وبالتالي فالافضل استخدام علامات البي اتش بي من بداية السكربت وادخال الـ HTML من ضمنها ، المثال التالي يعطي نفس نتائج الكود السابق ولكن بهذه الطريقة :
Code .. ____________________________________
<?
print("<p> تاريخ اليوم هو : "
. date("I F j. Y") . ".</p>");
?>
__________________________________________
اذا قمنا بحفظ السكربت بالامتدادت الخاصة بالـ PHP وهي كمثال على ذلك .php و .php3 وغيرها ، يجب ان توضع علامة الفتح <? في اول سطر في السكربت وليس قبلها اي مسافة وعلامة الاغلاف ?> في نهايته ، بغض النظر عن ما يوجد بين هذه الـ Tags ، فيمكن أن يكون بينها الكثير من علامات الـ HTML العادية ، وبذلك سوف تتكرر علامات الفتح والاغلاق اكثر من مرة في نفس السكربت ، ربما هذا المثال يعطيك صورة أوضح :
Code .. ____________________________________
<?
echo "بسم الله الرحمن الرحيم";
?>
<title>PHPvillage قرية بي اتش بي</title>
<?
echo "النهاية";
?>
__________________________________________
فكما تلاحظ قمنا بكتابة الأمر الخاصة بالطبـاعة في لغة الـ PHP وهو echo ثم قمنا باغلاق الكتابة وكتبنا علامات خاصة بالـ HTML ومن ثم قمنا بفتح الكتابة مرة أخرى ومن ثم تابعنا كتابة السكربت .
طالب علم
08-09-2003, 11:37 AM
تــــــــــكـــــــمــــــاـــة
- ملاحظة على الكتابة في اللغة :
يجب أن نكتب في نهاية كل سطر الرمز التالي ( ; ) الفاصلة المنقوطة ، وطبعا يوجد استثناءات لكل قاعدة ، فالمعاملات الشرطية مثل if وحلقات التكرار مثل while لا نضع لها فاصلة منقوطة في نهاية السطر ، أيضا ان كان السطر طويلاً بحيث لا يمكن مشاهدته على الشاشة بشكل كامل واردت ان تفرق الاسطر بدون وجود دالة في بداية السطر الثاني فيمكن أن ينتهي السطر بدون ( ; ) ويبدا السطر الثاني كتكملة للسطر السابق ، وعندما ترا الخطأ التالي في تنفيذ السكربت :
Code .. ____________________________________
Parse error: parse error in c:\apache\htdocs\head.php on line 13
____________________________________
فتاكد من الفاصلة المنقوطة في نفس السطر أو في السطور التي قبله .
نـــــهـــــــــــايـــــــــــة الـــــــــدرس الثاني
طالب علم
08-09-2003, 06:55 PM
بقلم : OneTo9 الـــــــــــــدرس الــــــــــــثالـــــــــث
التاريخ باللغة العربية
بسم الله الرحمن الرحيم والصلاة والسلام على اشرف الانبياء والمرسلين ، في هذا الدرس احببت أن اجيب على تسآول كثيراً ما يطرح في المنتديات وهو عن التاريخ باللغة العربية ، واتمنى من الله التوفيق في طرح الموضوع بشكل مبسط وفي متناول الجميع ..
في البداية وكمقدمة للموضوع أود الإشارة الا أن الطريقة المشروحة في هذا الدرس تعتمد على التاريخ الميلادي ، وبالتاكيد يمكن استخدامها مع التاريخ الهجري ولكن تحتاج الى تعديل وحسابات خاصة ، وباذن الله سيتم شرحها في المستقبل .
دالة التاريخ في البي اتش بي هي Date ، ولها معاملين ( أي قيمتين لاعداد مخرجات الدالة ) ، احد المعاملين اجباري والثاني اختياري ، اما الاول وهو الاهم تعتمد عليه مخرجات التاريخ بشكل اساسي مثل ضبط السنة بخانتين أو ضبط الشهر باسم الشهر .. وغيرها ، اما المعامل الثاني فهو ما يسمى بـ ( UNIX time stamp) وهو خاص بنظام اليونكس وكيفية تخزين التاريخ فيه ، عموماً ما يهمنا هنا هو المعامل الأول وهو ما يسمى بـ ( Format String ) ، وكمثال على ما ذكرنا :
Code .. ____________________________________
<?
$today = date(Y-m-d);
echo $today;
?>
__________________________________________
هذا المثال سيقوم بطباعة تاريخ اليوم على الشكل التالي 2002-03-13 ، ولاهمية الرموز التي يمكن استخدامها مع الـ Date ساذكر اهمها :
d رقم اليوم في الشهر على شكل خانتين من 01 الى 31 .
D اسم اليوم في الاسبوع على شكل 3 خانات مثل Mon أي الاثنين .
g رقم الساعة في اليوم من 1 الى 12 .
j رقم اليوم في الشهر من 1 الى 31 بدون وضع الصفر .
m رقم الشهر في السنة على شكل خانتين من 01 الى 12 .
y رقم السنة على شكل خانتين ، مثلا 02 .
Y رقم السنة على شكل اربع خانات ، ومثالها 2002 .
هذه من اهم الرموز لكي تتضح الصورة فقط ، ولعلنا نتطرق لها بشكل اوسع قريباً .
يتبع.....
طالب علم
08-09-2003, 07:07 PM
تــــــــــكـــــــمــــــاـــة
انشاء الجداول في قاعدة البيانات
لتحويل التاريخ الى اللغة العربية نحتاج أن ننشئ جدولاً في قاعدة البيانات ، فلذلك قم بنسخ الكود التالي والصقه في خانة Run SQL query في الـ PHPMyadmin أو بأي طريقة اخرى تراها ، الاهم انشاء الجدول .
code.. ____________________________________
CREATE TABLE month_name (
id tinyint(4) NOT NULL default '0',
month text NOT NULL
) TYPE=MyISAM;
INSERT INTO month_name VALUES (1, 'يناير');
INSERT INTO month_name VALUES (2, 'فبراير');
INSERT INTO month_name VALUES (3, 'مارس');
INSERT INTO month_name VALUES (4, 'ابريل');
INSERT INTO month_name VALUES (5, 'مايو');
INSERT INTO month_name VALUES (6, 'يونيو');
INSERT INTO month_name VALUES (7, 'يوليو');
INSERT INTO month_name VALUES (8, 'اغسطس');
INSERT INTO month_name VALUES (9, 'سبتمبر');
INSERT INTO month_name VALUES (10, 'اكتوبر');
INSERT INTO month_name VALUES (11, 'نوفمبر');
INSERT INTO month_name VALUES (12, 'ديسمبر');
__________________________________________
بعد انشاء هذا الجدول يجب أن يكون لديك جدول اخر يحتوي على التاريخ المراد تحوليه ، ولنفترض أن لديك الجدول ( news ) يحتوي على الحقول ( title , date ) ويحتوي على البيانات التالية :
date title
2002-04-20 الخبر الأول
2002-04-25 الخبر الثاني
2002-05-01 الخبر الثالث
يتبع..
Abo_ELleal
08-09-2003, 07:34 PM
مشكور أخي الحبيب
بارك الله فيك
وجزاك الله كل خير
ومبروك يا مرقبنا الغالي
الطل 14
08-09-2003, 07:52 PM
ألف شكر لك...
جزاك الله خير..
تحياتي..
طالب علم
صراحة انت منبع للعلم
وليس طالب للعم
فنخن الطلاب وانت المعلم
وتحياتي اليك على الدروس المفيدة جدا
اسكندراني
08-09-2003, 11:54 PM
ألف ألف ألف ألف شكر طالب علم وألف مبروك للمراقبة وعلى فكرة انا تركتلك المهمة لأني مشغول جداً
أسكندراني
أسير الشـوق
09-09-2003, 09:25 AM
شكرا لك اخي العزيز
وجزاك الله خير
تحياتي وبالتوفيق
طالب علم
09-09-2003, 12:51 PM
العفو إخواني....
تحياتي
طالب علم
09-09-2003, 01:36 PM
تــــــــــكـــــــمــــــاـــة
ادراج التاريخ في صفحة PHP
بقي أن نقوم بتحويل التاريخ الى العربية ، وادراجه في صفحة PHP ، ولعمل ذلك سنقوم باستخدام دالة تسمى Date_Format من خلال طلب لقاعدة البيانات ، نحدد من خلاله طريقة جلب البيانات ووضعها بالصورة المطلوبة .
بقي أن نذكر أننا سوف نضطر الى كتابة طلبين لقاعدة البيانات احدهما لجلب حقول العنوان ( title ) والاخر لجلب حقول التاريخ ( date ) كما يلي :
Code .. ____________________________________
<?
$result = mysql_query("select * from news");
$sql = "SELECT CONCAT(DATE_FORMAT(date,'%d'),\"
\",month_name.month,\" \",DATE_FORMAT(date,'%Y'))
AS date FROM news ,month_name
WHERE month_name.id = month(date)";
$result2 = mysql_query("$sql");
while ($row=mysql_fetch_array($result)
and $row2=mysql_fetch_array($result2))
{
$title = $row["title"];
$date = $row2["date"];
echo "$title , $date<br>";
}
?>
__________________________________________
عند تنفيذ السكربت ، سترى ما يلي :
الخبر الأول , 20 ابريل 2002
الخبر الثاني , 25 ابريل 2002
الخبر الثالث , 01 مايو 2002
يتبع...
طالب علم
09-09-2003, 02:51 PM
تــــــــــكـــــــمــــــاـــة
توافق البيانات
في حالات كثيرة تكون كتابة السكربت السابق بهذا الشكل مسببه للكثير من المشاكل ، و خاصة عند طلب ترتيب للجدول على حسب حقل معين ، وهذه المشاكل هي في توافق البيانات مع بعضها البعض ، فلو افترضنا في مثالنا السابق أن الخبر الأول الذي يحمل التاريخ 2002-04-20 كان باسم آخر ، مثلا ( العنوان الأول ) ، وبعد اضافة حقول ترتيب لجلب البيانات كالتالي :
Code .. ____________________________________
<?
$result = mysql_query("select * from news
order by title");
$sql = "SELECT CONCAT(DATE_FORMAT(date,'%d'),\"
\",month_name.month,\" \",DATE_FORMAT(date,'%Y'))
AS date FROM news ,month_name
WHERE month_name.id = month(date)";
$result2 = mysql_query("$sql");
while ($row=mysql_fetch_array($result)
and $row2=mysql_fetch_array($result2))
{
$title = $row["title"];
$date = $row2["date"];
echo "$title , $date<br>";
}
?>
__________________________________________
ستجد أن النتائج هي :
الخبر الثالث , 20 ابريل 2002
الخبر الثاني , 25 ابريل 2002
العنوان الأول , 01 مايو 2002 وهذا بطبيعة الحال مشكلة في توافق البيانات .
ولحلها يجب أن نوافق بين الطلبين لقاعدة البيانات ، بمعنى أنه اذا رتبنا الطلب الاول حسب ( title ) يجب أن نفعل ذلك مع الطلب الثاني بتعديله ليصبح :
Code .. ____________________________________
<?
$sql = "SELECT CONCAT(DATE_FORMAT(date,'%d'),\"
\",month_name.month,\" \",DATE_FORMAT(date,'%Y'))
AS date FROM news ,month_name
WHERE month_name.id = month(date)
order by title";
?>
__________________________________________
وبالتالي تصبح البيانات المخرجه كالتالي :
الخبر الثالث , 01 مايو 2002
الخبر الثاني , 25 ابريل 2002
العنوان الأول , 20 ابريل 2002
وهي بالتاكيد صحيحة .
نـــــهـــــــــــايـــــــــــة الـــــــــدرس الـــــــثــالـــث
طالب علم
17-09-2003, 10:28 PM
بقلم : OneTo9 الـــــــــــــدرس الــــــــــــرابـــــــــــــع
المتغيرات
بسم الله الرحمن الرحيم والصلاة والسلام على اشرف الانبياء والمرسلين ، بعد المقدمات السابقة والهامة في معرفة اساسيات اللغة يمكننا بداية كتابة البرامج بلغة البي اتش بي ، وبطبيعة الحال سنبدأ من اصغر الاساسيات واهمها في كتابة البرامج عموماً وهي المتغيرات .
المتغيرات في لغة الـ PHP تبدأ بعلامة الدولار ( $ ) ، ولاسناد قيمة لذلك المتغير نستخدم علامة المساواة ( = ) ، فرضا لدينا المتغير ( Name ) والقيمة ( Khaled ) فنكتب ما يلي :
Code .. ____________________________________
<?
$Name = "Khaled";
?>
__________________________________________
هذا في حالة المتغيرات النصية ( Text ) ، وفي حالة المتغيرات الرقمية ( Numbers ) يمكن تعريف متغير ( Counter ) الذي يحمل القيمة ( 17 ) كالتالي :
Code .. ____________________________________
<?
$Counter = 17;
?>
__________________________________________
الفرق الواضح في طريقة تعريف المتغيرين النصي والرقمي هو عدم وجود علامات التنصيص في تعريف المتغيرات الرقمية بينما يجب وضع علامات التنصيص في تعريف المتغيرات النصية .
نقاط هامة في تسمية المتغيرات :
- اسماء المتغيرات في كثير من لغات البرمجة لا تتعدى 255 حرف ( المقصود بها الخانات سواء كانت حروف أو ارقـام أو علامات اخرى ) ، و في لغة الـ PHP لا يوجد حدود على عدد الخانات في تسمية المتغيرات ، ولكن في الغالب لن تحتاج الى اكثر من 15 خانة لتسمية أي متغير ، لان المبالغة في تسمية المتغيرات تسبب مشاكل في تذكر المتغيرات وما تحتوية من قيم .
- بداية كل متغير يجب أن تبدأ بحرف ( يعني حرف هجائي ) أو علامة ( _ ) Underscore ، مع تجاهل علامة الـ $ لانها لا تحسب من اسم المتغير .
- يمكن أن يحتوي اسم المتغير على الحروف أو الارقام أو علامة ( _ ) فقط ، اما العلامات الأخرى مثل ( + , - , * , / ) أو الـ & لا يمكن كتابتها في اسم المتغير .
- المتغير ( Name$ ) يختلف عن المتغير ( name$ ) لاختلاف حالة حرف الـ N ، ولذلك يجب التاكد من اسم المتغيرات بدقة لتجنب حدوث مشاكل في الوصول الى متغير معين ، وبالتاكيد لو كان لديك اسلوب خاص في تسمية المتغيرات لسهولة الوصول اليها وتذكرها ستكون كتابة السكربات اسهل بكثير .
- يستحسن أن تكون اسماء المتغيرات دالة على معانيها ، بمعنى أنه لمتغير مثل عداد الزوار يستحسن أن يكون ( counter$ ) ، ولمتغير مثل اسم المستخدم ( user$ ) .. الخ .
يتبع...
طالب علم
17-09-2003, 10:37 PM
تــــــــــكـــــــمــــــاـــة
البيانات العددية ( Numeric )PHP
وكما ذكرنا في التقسيم السابق أنها نوعين ( الاعداد الصحيحة Integer ) و ( الاعداد الكسرية Double ) ، وكمثال على النوعين :
Code .. ____________________________________
<?
$integer1 = 233;
$integer2 = -29;
$double1 = 5.27;
$double2 = -4.6;
?>
__________________________________________
التعامل مع البيانات العددية ( Numeric ) :
العمليات الحسابية المشهورة ( + , - , * , / ) بالاضـافة الى باقي القسمة ( % ) عمليات شائعة جداً في التعامل مع المتغيرات العددية ، وبطبيعة الحال لن نحتاج الى ذكر أي مثال عن هذه العمليات ، وسنكتفي بذكر بعض النقاط الاساسية التي قل ما يخلو سكربت منها .
اول النقاط هي اضافة المتغير الى نفسه ، بمعنى تعريف عملية حسابية على متغير معين بحيث تخزن القيمة في نفس المتغير ، مثلا لو كان لديك عدد الزوار وتريد في كل مرة أن يزود عدد الزوار بـ 1 ، يمكنك كتابة ما يلي :
Code .. ____________________________________
<?
$counter = $counter + 1;
?>
__________________________________________
بالتالي سيتم زيادة المتغير ( counter$ ) بـ 1 في كل مرة يتم فيها تنفيذ السكربت ، وبطريقة أخرى يمكن كتابة السطر السابق كالتالي :
Code .. ____________________________________
<?
$counter = $counter++;
?>
__________________________________________
والـ ++ تعني زيادة قدررها ( 1 ) على قيمة المتغير الأصلية ، وكذلك الـ -- تعني طرح 1 من القيمة الأصلية .
وفي حالة الرغبة بزيادة أي عدد أخر ( غير الواحد ) على أي متغير باسلوب الطريقة الثانية يمكن كتابة ما يلي :
Code .. ____________________________________
<?
$counter +=4;
?>
__________________________________________
وهذا يعني زيادة مقدارها 4 على قيمة المتغير الأصلية ، وبالسالب كذلك بنفس الأسلوب .
يتبع...
طالب علم
17-09-2003, 10:54 PM
تــــــــــكـــــــمــــــاـــة
بعض الدوال الهامة
بعض الدوال الهامة في التعامل مع المتغيرات :
- isset : وهي دالة للتأكد من وجود متغير معين ، فمثلا :
Code .. ____________________________________
<?
echo isset($age);
?>
__________________________________________
سيتم طباعة الرقم 1 اذا كان المتغير ( age$ ) موجوداً ( تم انشاءه مسباقاً ) ، والعكس اذا كان غير موجود سيتم طباعة الرقم 0 ، وهذه الدالة يتم استخدامها كثيراً في الشروط وهذا ما سنتطرق اليه لاحقاً .
- unset : هذه الدالة تعمل على مسح المتغير من الذاكرة كليأ ، فقط قم بعمل التالي :
Code .. ____________________________________
<?
unset($age);
?>
__________________________________________
وفي هذه الحالة سيتم مسح المتغير ( age$ ) بشكل كامل .
- empty : وهذه الدالة معاكسة للدالة isset بحيث لو كتبنا ما يلي :
Code .. ____________________________________
<?
echo empty($age);
?>
__________________________________________
سيتم طباعة الرقم 1 في حالة عدم وجود المتغير ( age$ ) أو أن قيمة المتغير تساوي 0 أو ( فراغ ) ، وفي حالة وجود المتغير ( age$ ) لن يتم طبـاعة أي شي .
يتبع...
Abo_ELleal
17-09-2003, 11:54 PM
ما شاء الله عليك أخي طالب علم
أستمر ...
بارك الله فيك...
وجزاك الله كل خير...
Sadek MM
18-09-2003, 12:31 AM
مشكور أخي طالب علم
على هذه الدروس المفيده
ـــــ ولكن عندي طلب بسيط ـــــــ
يا ريت عند كتابة الكود تحول إتجاه الكتابة من اليمين إلى اليسار
أو تكون الكتابة فى وسط الصفحة ......
حتي يسهل علينا قراءة الكود بشكل صحيح .... أو نسخة ولصقة فى المكان المطلوب
أرجوا أن تتقبل ملاحظتي بسعة صدر
أنا أحد المتتبعين للموضوع بشـغف وفي إنتظار باقي الدروس
تحياتي
طالب علم
20-09-2003, 09:05 PM
Abo_ELleal:
العفو أخي الكريم.....
وإنتظرو الباقي....
تحياتي
=========
Sadek MM:
ولو اخي الكريم....
إحنا تحت أمرك في أي مكان وأي زمان....
أنت أمر وإدلل...ز
تحياتي
اليمن12
20-12-2004, 04:22 PM
مشكور أخي الكريم.
واي استفسار سأرد لاحقاً..
الجزماوي
20-12-2004, 05:32 PM
شكراً لك أخي صهيب علي هذا النقل المفيد
وبارك الله فيك أخي
وان شاء الله نستفيد من هذه الدروس
اخوك الجزماوي
Aljaboury
22-12-2004, 09:32 AM
ما شاء الله عليك أخي طالب علم
أستمر ...
بارك الله فيك...
وجزاك الله كل خير...
الجزماوي
22-12-2004, 02:29 PM
[QUOTE=طالب علم][c][COLOR=redفي بداية الإعداد سنحتاج إلى ما يلي :
- Apache Server ويمكنك تحميله من [ هنا (http://www.apache.org/) ] .
- PHP 4 ويمكنك تحميله من [ هنا (http://www.php.net/) ] .
- MySQL وتجده في هذا الرابط [ هنا (http://www.mysql.com/) ] .
[]
قم QUOTE]
اخي العزيز ...
اتمنى ان تضع لها روابط مباشرة حتى استطيع متابعة جميع دروسك لاني احاول ان اتعلم هذه اللغة سابقا ولم استطع
أتمنى ان استفيد من هذه الدروس
اخوك الجزماوي
nawar12
30-12-2004, 12:52 PM
شكراً لك أخي صهيب علي هذا النقل المفيد
وبارك الله فيك أخي
مقاوم مقاوم
14-02-2005, 02:20 AM
أخي الكريم ممكن رابط للتحميل فورأً
السلام عليكم
كيف حالكم .....ارجو لكم الصحة والعافية ولمن يعرفكم ويعرفنى ولجميع المسلمين الاحياء منهم والاموات والشهداء
لقد اعجبتنى تلك الدروس جيداا وارجو ان اكون استفدت منها وكذالك كل من قرأها
انا تلميذ يبحث عن استاذه
أ طلب منكم ان يقبلنى احدكم تلميذ له
انا لا اعرف php ولا MySQL وانا جديد على عالم تطوير المواقع
ولم اجد فى دولتى معهد يدرس تلك المجالات بشكل مفصل
انا موريتانى ال***ية واعيش فى موريتانيا
وشكراا جزيلا
معلو مات عن التلميذ الجديد
الاسم : محمد
العمر : 17
المهنة; تلميذ
البريد الالكترونى : vall662@yahoo.fr
انتهت المعلومات الشخصية
شكراا لكم
MoShaKeS™
14-02-2005, 09:59 PM
شكـــرا لــــك أخـــــي الكريم
Mohra
12-07-2005, 08:11 PM
في بداية الإعداد سنحتاج إلى ما يلي :
- Apache Server ويمكنك تحميله من [ هنا ] .
- PHP 4 ويمكنك تحميله من [ هنا ] .
- MySQL وتجده في هذا الرابط [ هنا ] .
قمت بالدخول لهذه المواقع ووجدت البرماج مع ارقام جديدة و اصدارات اخرى هل لاحد من الاعضاء بتحديد الافضل لنا لنقوم بالتحميل و تطبيق هذه الدروس جزاكم الله خير
متتعلم
15-07-2005, 02:38 AM
كلمة شكر قليله في حقك اخي الكريم
magedghazy
23-07-2005, 12:50 PM
أين باقي الدروس
douja
21-01-2006, 06:35 AM
كلمة شكر قليلة في حقك اخي الكريم
لكن أين باقي الدروس
سحر الشام
10-09-2006, 03:27 PM
مشكور على هذا الشرح جزاك الله الخير
تحياتي
MERISE
11-10-2006, 06:44 PM
بارك الله فيك أخي الكريم
الامير الذهبي
11-07-2007, 09:15 PM
مشكوووور اخووووي
الجهاد
11-07-2007, 10:18 PM
تسلم على الشرح الجميل .. جعله الله في موازين حسناتك
الجميل القوي
11-07-2007, 10:25 PM
مشكور اخي الكريم
.الفرعون
12-07-2007, 01:33 PM
مشكور اخي الكريم على الشرح
vBulletin v3.6.3, Copyright ©2000-2008