منتدى شباب 17 فبراير
هل تريد التفاعل مع هذه المساهمة؟ كل ما عليك هو إنشاء حساب جديد ببضع خطوات أو تسجيل الدخول للمتابعة.


اهلا وسهلا بك من جديد (( زائر )).. عدد مساهماتك 0
 
الرئيسيةالرئيسية  أحدث الصورأحدث الصور  التسجيلالتسجيل  دخولدخول  

 

 لغة ( PHP )

اذهب الى الأسفل 
4 مشترك
كاتب الموضوعرسالة
alomami
عضو مبدع

عضو مبدع
alomami



لغة ( PHP ) Empty
مُساهمةموضوع: لغة ( PHP )   لغة ( PHP ) Icon_minitime103/10/11, 11:04 pm

لغة ( PHP )



تتميز لغة
PHP بالكثير من الخصائص التي جعلتها الخيار الأمثل لمبرمجي الويب في
العالم :



السهولة



تعتبر لغة
PHP من أسهل لغات البرمجة تعلما، فهي تريحك من جميع تعقيدات إدارة
الذاكرة وتعقيدات معالجة النصوص الموجودة في
C من جهة، والكثير من الضعف الموجود في بينية وتصميم لغة البرمجة Perl من جهة أخرى.



تمتلك لغة
PHP بنية وقواعدا ثابته وواضحة جدا، معظم قواعد اللغة مأخوذة من كل من
C و Java
و
Perl لصنع لغة برمجة عالية السهولة والسلاسة دون فقدان أي من القوة في
اللغة، يفيدك ذلك إذا كنت تعلم أي شيء عن لغات البرمجة الأخرى مثل
Visual Basic أو C
أو
Java حيث ستجد دائما بأنك تفهم مواد الدورة بسرعة، وستكتشف كيف تقوم PHP بتسهيل أصعب الأمور وإذلال العقبات التي تواجه المبرمج حتى يتفرغ
تماما للإبداع فقط، كل ما تفكر به تستطيع تنفيذه بلغة
PHP.



السرعة



لغة PHP من اللغات المعروفة بسرعتها العالية في تنفيذ البرامج، وخاصة في
الإصدارة الرابعة من المترجم، حيث تمت كتابة مترجم
PHP من الصفر ليعطي أداءا في منتهى الروعة، كما أن لغة PHP مصممة أصلا كنواة لمترجم، بحيث يمكن أن تضع هذه النواة في عدة
قوالب أو أغلفة لتعمل مع التقنيات المختلفة، فيمكنك تشغيل مترجم
PHP كبرنامج CGI مثلا، ولكن الأفضل هو إمكانية تركيب مترجم PHP على مزود IIS في صورة وحدة إضافية تضاف إلى المزود عن طريق دوال ISAPI، وتوجد نسخة أخرى منه تركب على مزود Apache أيضا في صورة وحدة خارجية، وتوجد أيضا نسخة مخصصة للدمج مع شفرة
مزود
Apache بحيث تصبح جزءا من برنامج Apache نفسه، وهي الطريقة الأكثر استخداما الآن في مزودات الويب التي
تعمل على أنظمة
UNIX وهي الطريقة التي تعطي أفضل أداء لمترجم PHP، حيث يصبح المترجم جزءا من المزود، وبالتالي فإنه سيكون محملا في
الذاكرة بانتظار صفحات
PHP
ليقوم بترجمتها وعرضها للزوار مباشرة دون التأخير الإضافي الذي تتطلبه برامج
Perl/CGI مثلا حيث يجب أن يتم تشغيل مترجم Perl مع كل زيارة للصفحة لترجمة الصفحة، ثم يتم إغلاق المترجم، ثم
استدعاءه مجددا عند الزيارة الثانية وهكذا، وهذا يشكل فارقا كبيرا في المواقع ذات
الضغط العالي بالذات، ويكون استخدام
PHP حلا أفضل بكثير.



المزايا



يأتي
مترجم
PHP لوحده محملا بعدد هائل من الدوال الجاهزة الاستخدام في جميع
المجالات، من دوال المعالجة الرياضية والحسابية إلى دوال الوصول إلى قواعد
البيانات ومزودات
FTP، توفر لك دوال PHP مثلا وصولا إلى مزودات البيانات MySQL و PostgreSQL
و
MS
SQL
و Oracle وغيرها من مزودات قواعد البيانات، وهنالك أيضا مجموعة من الدوال
لمعالجة ملفات
XML، ودوال أخرى لإرسال واستقبال الملفات عن بعد باستخدام بروتوكول FTP، وهنالك مجموعة من الدوال لمعالجة وإنتاج الصور ديناميكيا وملفات Flash ديناميكيا، ناهيك عن جميع الدوال الخاصة بمعالجة النصوص
والمصفوفات.



التوافقية



كما قلنا
سابقا، فعلى الرغم من أن هنالك الكثير من نسخ
PHP التي يعمل كل منها في بيئة مختلفة، إلا أنها جميعا تشترك في
النواة الأصلية التي تقوم بالمعالجة الحقيقة لملفات
PHP لذا فإن جميع مترجمات PHP تتصرف بنفس الطريقة فيما يتعلق بتنفيذ السكريبتات، فإذا كان
السكريبت الذي عملته يعمل على نظام
Windows مع مزود IIS فيجب أن يعمل دون الحاجة لأية تغييرات عند نقله إلى مزود Apache، بالطبع تظل بعض الأمور البسيطة جدا التي يوفرها بعض المزودات دون
غيرها، ولكن جميع البرامج التي كتبتها منذ أن بدأت تعلمي للغة إلى الآن تعمل على
جميع المزودات دون الحاجة لأي تغييرات، إضافة إلى ذلك فإن التغييرات التي حدثت
باللغة الأساسية من الإصدارة الثالثة إلى الرابعة قليلة جدا، وأغلب التغييرات كانت
في البنية التحتية للمترجم.



الحماية



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



قابلية التوسع



يمكنك
توسعة مترجم
PHP بسهولة وإضافة الميزات التي تريدها إليه بلغة C، وحيث أن الشفرة البرمجية للمترجم مفتوحة فإنك تستطيع تغيير ما
تريده مباشرة لتحصل على النسخة التي تناسبك من المترجم، ويمكنك أيضا عمل الوحدات
الإضافية التي تركب على المترجم لزيادة ميزاته والوظائف المبيته فيه، وفي قد قام
فريق تطوير مترجم
PHP مسبقا بعمل هذه المهمة وتحويل كمية ضخمة من المكتبات المكتوبة
بلغة
C إلى مكتبات مخصصة لتضاف إلى المترجم، ومنها حصلنا على جميع
الميزات التي تحدثنا عنها مثل الوصول إلى قواعد البيانات ومعالجة ملفات
XML.



تاريخ PHP



بدأت PHP كمكتبة من الدوال تضاف على لغة Perl لتسهل عمل برامج CGI بلغة Perl،
وبعد أن تلقى
Rasmus
Lerdof
بعض الاقتراحات
بتحويلها إلى مترجم بسيط، قام بعمل ذلك المترجم وطرحه على الإنترنت وسماه
PHP أو Personal Home Pages أي الصفحات الشخصية، فقد كان عبارة عن نسخة مصغرة من Perl مع بعض الميزات الإضافية للويب، ثم أضاف إليه دعما لنماذج HTML وسماه PHP2/FI،
فقام مجموعة من المبرمجين بالعمل على مترجم
PHP وأضافوا إليه واجهة تطبيقات برمجية API لتسهيل عملية توسعته فأصبح لدينا PHP 3، بعد فترة من الزمن قامت شركة Zend للتقنيات بعمل مترجمها الخاص للغة والذي سمي zend أيضا، وقد اتصف هذا المترجم بالسرعة العالية وقدراته المحسنة،
وجمع مع مكتبات
PHP الأخرى لتكوين نواة المترجم PHP، مترجم PHP
الآن مقسم على قسمان: المترجم
zend ويتم تطويره على مزودات CVS الموجودة في موقع zend والقسم الثاني يسمى PHP وهو عبارة عن المكتبات والدوال الأساسية التي تأتي مع البرنامج،
يقوم مترجم
zend بقراءة الملفات ومعالجتها والتعامل مع المتغيرات وتنفيذ البرنامج
وتوفير واجهة تطوير للتطبيقات
API لتوسعة اللغة، أما PHP فتحتوي الآن على مكتبات مكتوبة بلغة C ومتوافقة مع واجهة التطبيقات التي يوفرها مترجم zend، وبالتالي يعمل القسمان معا لتكوين مترجم PHP، وعندما تزور موقع PHP الرسمي
الآن وتحصل على مترجم
PHP
جاهزا أو تحصل على الشفرة البرمجية الخاصة بك، فإنك تحصل على كل من مترجم
zend ومكتبات PHP معا.



تطور PHP تطورا مفاجئا في الفترة الأخيرة، وتشير إحصائيا Net Craft إلى أن مترجم PHP هو أكثر وحدات مزود Apache انتشارات على الإنترنت، كما أن مترجم PHP مركب على حوالي مليوني مزود ويب على الإنترنت.









بنية ملفات PHP



ملفات PHP هي ملفات نصية بسيطة، تشبه في تركيبها ملفات ASP وملفات HTML
بشكل عام، يتكون ملف
PHP
من قسمان، قسم
HTML وقسم PHP،
الملف بالصورة الطبيعية عبارة عن ملف
HTML عادي، ولكنك تستطيع تحديد أجزاء معينة من الملف ليخرج فيها الملف
من وضعية
HTML إلى وضعية PHP، لإخراج الملف إلى وضعية PHP توجد عدة طرق :



1 - استخدام
زوح الوسوم <?
php و ?> كالتالي :



<?php



echo 'This is PHP output!';



?>



2 - استخدام زوج المختصر <? و ?> وهو
يستخدم بنفس الطريقة السابقة ولكنه يكون بدون الكلمة
php في وسم البداية، هذا النوع من الوسوم يحتاج إلى كمية أقل من
الكتابة بالطبع، ولكنه يتعارض مع وسوم
xml، لذا يقوم البعض بإغلاق ميزة الوسوم القصيرة حتى لا يحصل هذا
التعارض ( يمكنك اغلاق هذه الميزة بسهولة عن طريق ملف إعدادات
PHP ).



3
- استخدام زوج الوسوم
ASP،
وهو من اسمه زوج الوسوم المستخدم في ملفات
ASP وهما <% و %>، ميزة وسوم ASP لا تكون فعالة بشكل قياسي ولكنك تستطيع تفعيلها عن طريق ملف
إعدادات مترجم
PHP.



4 - الطريقة الأخيرة هي استخدام زوج الوسوم
التالي :




<script
language="php" >




echo
'This is PHP output!';




</script>



ولكن هذه الطريقة غير
مستخدمة الآن، حيث أنها تصعب عملية التمييز بين شفرات
PHP وباقي ملف HTML، وكذلك بالنسبة لبرامج كتابة ملفات HTML التي تعطي تلوينا للشفرة فأغلبها لا يتعرف على هذا النوع من
الشفرة ويعتبره جزءا من ملف
HTML الاعتيادي.



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



كتابة ملفات PHP



ملفات PHP هي ملفات نصية بسيطة تماما كما هي ملفات HTML، يمكنك كتابة سكريبت PHP بأي برنامج كتابة نصوص يتيح لك كتابة الملفات النصية البسيطة Plain Text مثل Notepad
على النظام ويندوز، ولكن أغلبية مبرمجي
PHP يستخدمون أدوات أخرى تسهل عليهم عملية البرمجة عن طريق تلوين
الشفرات البرمجية، وتسهل عملية البحث عن الملفات واستبدال المقاطع من عدة ملفات في
نفس الوقت، مثل
HomeSite، على الرغم من أنك لن تحتاج إلى الكثير من هذه الميزات إلا أن
استخدام
Notepad في عمل ملفات PHP يعتبر أمرا صعبا جدا وخاصة في الملفات الضخمة حيث أن Notepad لا تتيح فتح الملفات الكبيرة، والمشكلة الأكبر هي أنها لا توفر
ترقيما للأسطر، فإذا ظهرت لك رسالة الخطأ تشير إلى وجود خطأ في السطر 53 فلن
تستطيع معرفة السطر المطلوب في
Notepad إلا إذا قمت بالعد يدويا من السطر الأول وحتى 53 .. حسنا ماذا لو
كان الخطأ في السطر 652، يمكنك البدأ بكتابة سكريبتاتك بالبرنامج المتوفر الآن إلى
أن تحصل على برنامج آخر، يمكنك بالطبع فتح ملفاتك بأي محرر نصوص، فإذا كتبتها
باستخدام
Notepad فهذا لا يعني بأنك ملزم باستخدام Notepad في جميع ملفاتك أو حتى في هذا الملف.



لعمل ملف PHP الآن قم بفتح محرر النصوص الذي اخترته وابدأ بكتابة الصفحة التي
تريدها، ولا تنسى إحاطة شفرات
PHP بالوسوم الخاصة بها، ثم احفظ الملف في أي مكان في دليل مزود الويب
الخاص بك وأعطه الإمتداد المناسب .
php أو .php3
حسب إعدادات مزودك، ثم قم بزيارة الصفحة باستخدام المتصفح وستجد الصفحة وقد تمت
ترجمتها وعرضها عليك.




تذكر بأنك
يجب أن تزور الصفحة مرور بمزود الويب، ولا يمكنك عرض الصفحة عن طريق فتحها كملف
خارجي، على سبيل المثال، إذا كان الدليل الجذري لصفحات مزودك هو :
C:\httpd\




وقمت بعمل
صفحة أسميتها
test.php في ذلك الدليل، يجب أن تقوم الآن بتشغل مزود الويب وزيارة الصفحة
على العنوان http://localhost/test.php، إذا قمت باستخدام الأمر
Open من القائمة File في المتصفح لفتح الملف C:\httpd\test.php فلن ترى صفحة PHP مترجمة، وسترى شفرة PHP فقط.



تدريب



قم بتنفيذ ملف PHP التالي :



This is the normal html page.<br>



<?php



echo
"This is inside PHP<br>";




echo
"Hello World!<br>";




?>



ما الذي تشاهده عند تنفيذ البرنامج
السابق؟ من المفترض أن تشاهد الخرج التالي :




This is the normal html page.



This is inside PHP



Hello World!



ها قد
انتهيت من كتابة برنامجك الأول بلغة
PHP، لا تقلق إذا لم تفهم أي شيء فيه، سنتعلم الآن كيفية استخدام
المتغيرات والعبارات بلغة
PHP.



الرجوع الى أعلى الصفحة اذهب الى الأسفل
alomami
عضو مبدع

عضو مبدع
alomami



لغة ( PHP ) Empty
مُساهمةموضوع: رد: لغة ( PHP )   لغة ( PHP ) Icon_minitime103/10/11, 11:08 pm

لنكتب سكربتاً بسيطاً (فاتح شهية) :







<html dir = “rtl”>




التحية لدي أهل الإسلام هي



<?



(“السلام عليكم ورحمة الله وبركاته”) Echo



?>



</html>











قم
بحفظ الملف باسم
echo.php



ستعرض
علينا عباره مكتوب فيها








التحية
لدي أهل الإسلام هي السلام عليكم ورحمة الله وبركاته








شي بسيط أليس كذلك ؟











يتكون
كود الـ
php من نصوص و كود و علامات ولغة html وقد
لاتحتوي على نصوص
html .



لكي
يعمل الكود يجب أن يكون إمتداد الملف
php أو بأي إمتداد من إمتدادات
الـ
php




مثلاً
php3 و phtml



--



عندما
تطلب صفحة في الإنترنت فإنك تجري اتصالاً مباشراً مع السيرفر هذه العملية تدعي
request
للسيرفر (يعني طلبية للسيرفر) يقوم السيرفر بتفسير طلبك والبحث عن الصفحة المطلوبة
ويرسل اليك الصفحة المطلوبة كجزء مما يسمي
response (استجابة)
لمستعرض الانترنت لديك يقوم بعدها المتصفح لديك بأخذ الكود الذى ارجع إليه ويقوم
بتجميعه (
compile) لكي يصبح صفحة صالحة للعرض هذه العملية التي حصلت تشبه نظرية
العميل للخادم(
client
to server
) بحيث أن المتصفح هو العميل والخادم هو السيرفر .



الخادم
يقوم بعملية تخزين وترجمة وتوزيع البيانات بينما يقوم العميل (مستعرض الانترنت
لديك) بالعبور الى السيرفر واحضار البيانات












بروتوكولات الانترنت :







لانريد
هنا أن نذهب إلى التكلم عن تاريخ انترنت العتيق ، النقطة المهمة هي الشبكة المربوطة
بنقاط
nodes الانترنت صممت لكي تقوم بالحفاظ على المعلومات لكي يتم نقلها من
مكان إلى آخر وهي تستخدم مجموعة من البروتوكولات مثل
Tcp/Ip لكي
يتم نقل البيانات عبر الشبكة .








بروتوكول Tcp/Ip



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








قبل
أن يتم إرسال البيانات عبر الشبكة يجب عنونتها والبروتوكول الذي يقوم بعنونة
البيانات يدعي
HTTP يقوم هذا البروتوكول بوضع عنونة للبيانات لكي يعرف البروتوكول TCP أين سينقل البيانات (فهو لايستطيع نقل البيانات إذا لم يكن لها هدف أو
مكان ) يستخدم البروتوكول
HTTP عن طريق الويب في عملية نقل البيانات من كمبيوتر إلى آخرعندما ترى
الصفحة متبوعة بـ
http:// فانك تعلم مباشرة أن الانترنت يستخدم البرتوكول HTTP لإحضار
هذه الصفحة يمكنك أن تاخذ صورة بأن الـ
TCP عبارة عن ساعي
بريد الذي يقوم بإيصال رسالة ، هذه الرسالة فيها طابع بريد وعنوان وهو مانسميه بالـ
HTTP .







يتم
تمرير الطلب من المستعرض إلى ملقم أو سيرفر الويب وهو مايعرف بـ
HTTP request ويقوم السيرفر برؤية مستودع البيانات لديه لكي يحصل على البيانات
المطلوبة فإذا وجد الصفحة في المستودع قام بإرسالها على شكل حزم الى الجهة التي
قامت بالطلب باستخدام بروتوكول
TCP ويعنون هذه الحزم لمستعرض الانترنت لديك باستخدام بروتوكول http (ننبه دائما الى أنه يرسلها على شكل حزم لكي تعرف السبب عند عدم ظهور
صفحة ويب كاملة أن هناك حزمة لم ترسل بشكل جيد) ولكن إذا لم يجد السيرفر الصفحة
المطلوبة فانه يقوم بإرسال صفحة تحتوي على رسالة خطا 404 وهذه الصفحة التي أرسلت
من ملقم الويب الى المستعرض لديك تسمي
HTTP response .







بروتوكول الـ HTTP



رغم
ما أخذناه من معلومات كثيرة وقصص كثيرة تشبه قصص ألف ليلة أو حكايات الأطفال إلا أنه
رغم ذلك يفوتنا الكثير من التفاصيل في هذا الموصوع لذلك دعنا نغوص قليلاً في
التفاصيل عن بروتوكول
HTTP بشكل خاص.







عندما
تقوم بعملية طلب لصفحة من السيرفر هناك أمور إضافية ترسل مع عملية الطلب
http request غير الـURL وهي ترسل كجزء من http
request
.



نفس
الموضوع مع ال
http
response
هناك أمور أخرى تصل معه كجزء منه .







الكثير
من هذه المعلومات تولد تلقائياً في رسالة الـ
HTTP
ولايقوم المستخدم بالتعامل معها مباشرة , إذن لايحتاج أن تقلق نفسك بشأن هذه
المعلومات إذا أنت لم تنشأها في الأصل ويجب أن تأخذ أيضا في معلوماتك أن هذه
المعلومات ترسل كجزء من الـ
HTTP
request
والـHTTP
response
لأن سكربت الـPHP الذي نصنعه يمنحنا تحكماً إضافيا بهذه المعلومات .







كل
رسائل الـ
HTTP تأخذ تنسيقاً معيناً سواء كانت Request أو Response . نستطيع أن نقوم بتقسيم هذا التنسيق إلى ثلاثة أقسام :



1 -
Request/response
line




2 -
Http
header




3 -
Http
body








المحتوي
من هذه الأشياء الثلاثة يعتمد على نوع الرسالة إذا كانت
HTTp Request أو HTTP
response
لذلك سنتكلم عنهم بتعمق أكثر .







Http Request



يجب
أن يحتوي الـ
request على الأقل الـrequest
line
(سطر الطلب) والـHOST .



يرسل
مستعرض الانترنت طلبية (
HTTP
request
) إلى ملقم الويب تحتوي على التالي :







1- The Request Line



السطر
الأول من كل طلبية (
http
request
) هي Request
Line
الذي يحتوي على ثلاثة أنواع من المعلومات :



أ -
أمر
HTTP وهو مايعني بـ method .



ب -
المسار من السيرفر إلى المصادر المطلوبة (صفحات الانترنت ) المطلوبة من قبل العميل
(المستعرض)




جـ -
إصدارة الـ
HTTP .







إذن
كمثال على الـ
Request
Line
أنظر إلى السطر التالى :



GET /testpage.htm HTTP/1.1







الـmethod يخبر
السيرفر كيف يتعامل مع الطلب هناك ثلاثة أنواع شائعه من الـ
method



























2-
HTTP
Header




البت
الثاني من المعلومات هو الهيدر
HTTP
Header
.الذي يحتوي على تفاصيل أو وثائق عن العميل مثل نوع المتصفح
(نتسكيب أو إكسبلور) الذي قام بطلب الصفحة والوقت والتاريخ والإعدادات العامة




الـHTTP Header يحتوي على معلومات نستطيع تقسيمها الى ثلاث فئات وهي :



أ -
عامة
GENERAL
: تحتوي معلومات إما عن العميل أو السيرفر ولاتخصص إلى فرد أو مجموعة
.




ب -
شخصية
Entity
: تحتوي على معلومات عن البيانات التي أرسلت بين المتصفح
والسيرفر .




جـ -
مطلوبة
Request
: تحتوي على بيانات عن إعدادات العميل والأنواع المختلفة المقبولة
من البيانات .








وهذا
مثال :




Accept: * /
*








Accept language: Arabic-KSA.



Connection: Keep –Alive.



Host : http://www.arabbuielder.com



Referer:
http://www.arabbuielder.com/index.php?something=132




User –Agent :Iexploer (win98;.........)







مثلما
ترى الـ
HTTP
Header
عبارة عن إعداد يتكون من عدة سطور كل سطر يحتوي على قيم معينة .







هناك
عدة سطور تشكل الـ
HTTP
header
وأكثرها إختياري , يقوم الـHTTP بالإخبار
عن إنتهاء معلومات الـ
header بترك سطر فارغ (وهذا يكون في الـHTTP1.1 ) .







3-
The
HTTP Body
:



إذا
تم استخدام الأمر
POST في الـHTTP
Request Line
عندها يقوم الـ HTTP بطلب
المعلومات التي ارسلت في الـ
body الى السيرفر .







Http Response



يرسل
من السيرفر إلى المستعرض ويحتوي على ثلاثة أشياء :




1-
the
Response Line




2 -
http
header




3 - Http Body







1 -
The
Response Line




الـ
response line يحتوي فقط على نوعين من المعلومات :



1 - رقم
إصدارة الـ
HTTP .



2 -
شفره أو كود الـ
http
request
التي تقوم بتحديد إذا كان الـrequest
ناجحاً أم فاشل .








مثال
:




HTTP/1.1 200 OK







في
هذا المثال يقوم الـ
response
line
بإرجاع القيمه 200 متبوعة بالكلمة OK هذه
تشكل وتشير إلى نجاح الـ
request ويكون الـresponse يحتوي على الصفحة المطلوبة والبيانات من السيرفر . ومثال آخر هو
الشفرة 404 عندما تقوم بطلب صفحة ويفشل السيرفر في الحصول عليها .








2 -
HTTP
Header




الـ
response header يعتبر مشابه request
hader
الذي ناقشناه في الأعلى .وتنقسم المعلومات التي فيه أيضا إلى ثلاثة
أنواع :




أ -
عامة
GENERAL
: معلومات عن الـ
client أو السيرفر ولاتخصص إلى واحد منهما .



ب -
شخصية
Entity
: يحتوي على معلومات عن البيانات التي يتم ارسالها بين السيرفر
والعميل .




جـ -
الإجابة
Response
: يحتوي معلومات عن السيرفر الذي قام بإرسال الرد وكيفية تعامله
ومعاجلته للرد (
Response ) .







كما
قلنا سابقاً ، يتكون من عده سطور ويتم وضع سطر فارغ للإعلام عن إنتهاء الهيدر .








مثال
:




HTTP/1.1 200 OK -the satus line



Date: Mon; 1st Nov 1999, 16:12:23 GMT -general header



Server : Apache/1.3.12 (Unix)
(SUSE/Linux) PHP/4.0.2 -the response




Last-modified: Fri, 29 Oct 1999, 12:08:03 GMT -Entity Header







السطر
الأول ناقشناه والسطر الثاني مفهوم من غير شرح ، السطر الثالث يقوم بتحديد
البرنامج تبع السيرفر ونوعه ونظام التشغيل القائم عليه والسطر الأخير يقوم بتعريف آخر
وقت تم فيه تعديل أو تجديد الصفحة .








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








3 -
Http
Body




إذا
تم معالجة الطلب بنجاح ، فإن الـ
HTTP
response Body
يحتوي على كود الـHTML
ويقوم مستعرض الانترنت بتفسيرها وتحويلها إلى الصفحة النهائية التي تراها .








أين سكربت الـPHP من
ذلك كله ؟




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








تكلمنا
عن أن سكربت الـ
php يتكون من ثلاثة أشياء : نص وكود php وكود
html ، لانسطيع وصف الـhtml بأنها لغة برمجة بشكل جيد ونستطيع أن نقول أن الـphp لغة
سكربتات
Scripting
Language
لأنها تضيف قدرات html عليها مثل الجداول والفريمات بكود html
بداخل كود الـ
php هناك لغات تسمي لغات سكربتات قد تكون متآلفاً معها مثل الجافا
سكربت والفجول بيسك سكربت بإستثناء أن الفرق بينها وبين الـ
php هو أن
الـ
php لغة تعتمد على جهة المزود أي السيرفر ويمكنك تخصيص المتصفح الذي
يستعرضها .




تجعلنا
الـ
html نضمن سكربتات الـphp فيها ضمن قواعد لذلك لكي نستطيع تشغيلها ولكننا لاننسي أن إمتداد
الملفات يظل كما هو
php
أو
php3 بدون تغير فيه لكي يتم إرسال السكربت الى مكتبة الترجمة (scripting engine) التي تقوم بترجمة السكربت إلى html (كأنك
تترجم من عربي لإنجليزي أو العكس )








مفهوم الـparsing و الـExecution :



ممكن
أن نقسم عملية الترجمة الذي يقوم بها سيرفر
php إلى قسمين أو عمليتين :



العملية الأولى :
هي أن السيرفر يقوم أولا بفحص قواعد اللغة وهذا لايضمن أن السكربت صحيح مائة
بالمائة ولكنه تدقيق في الأوامر وقواعد اللغة وهذا مايسمونه بالـ
Parsing



العملية الثانية
: هي تنفيذ السكربت بعدها وإخراجه على شكل كود
html وهذا
مايسمي بالـ
Execution .







بقي
أن نقول أمراً معروفاً وهو أن السكربتات نوعين :








1 -
وهو ماينفذ من جهة المزود




Server
–Side scripting




2 -
ماينفذ من جهة المستعرض (صفحة انترنت) .




الرجوع الى أعلى الصفحة اذهب الى الأسفل
alomami
عضو مبدع

عضو مبدع
alomami



لغة ( PHP ) Empty
مُساهمةموضوع: رد: لغة ( PHP )   لغة ( PHP ) Icon_minitime103/10/11, 11:10 pm

التعليقات


ما رأيك إذا كنت في شركة وكان معك أكثر من مبرمج وأردتم تصميم برنامج ، اإذن قد تحتاجون لتنظيم العمل وتعديله لذا من اللازم أن تقوم بعمل توضيح لفائدة الكود الذي كتبته كي يسهل فهمه عليهم وإضافة تعديلات مناسبة ، إذن التعليقات تستخدم في الإفاده عن شرح الأكواد أو إضافة معلومات لاتستعمل إلا كتوضيح أو أي شي آخر . يمكنك عمل تعليق من سطر واحد كالتالى :<?//هذا تعليق لافائدة له له اي معني?>مثال آخر :<?//هذه الداله تقوم بطباعه الكلمه تعليقEcho “تعليق”;?> وأيضا يمكنك استخدام تعليق من أكثر من سطر كالتالي : <?/*تعليق يتكون من اكثر من سطر بعلامة السلاش والنجمه */?>

المتغيرات


ماهي المتغيرات ؟ أبسط تعريف يمكن أن نقوله عن المتغير هو أنه مساحة من الذاكرة تستخدم لتخزين المعلومات ويتم التحكم فيها عن طريق المبرمج في الـPHP ، المتغيرات تبدأ بعلامة الـ$ ولكي تقوم بإدخال قيمة في المتغير فإنك تستخدم المعامل (=) إذن لكي تقوم بإنشاء متغير يحتوي على قيمة يمكنك القيام بذلك كالتالى : $alfares = How Are You Every Body?”;$اسم_المتغير = قيمه ; لاحظ أن السطر السابق يتكون من خمسة أشياء : 1 / المتغير وهو alfares2 / وقبله علامة الـ$ لكي يعرف مترجم الـPHP أنه متغير 3 / المعامل ( = )4 / الفاصلة المنقوطة ( ; )5 / القيمة وهي How Are You Every Body? وهي القيمة الموجودة في المتغير أو التي اقترحناها للمتغير أو التي وضعناها فيه ( لأن الذي اقترح القيمه هو أنت (مبرمج الphp ) ) ملاحظات : 1- اسماء المتغيرات حساسة لحالة الأحرف إذا كانت كبيرة وصغيرة <?$Ahmed = “salem”;$ahmed = “slmoon”;echo $ahmed;echo $Ahmed;?> المتغيرين الذين بالأعلي مختلفين بسبب حالة الأحرف. 2 - يمكنك استخدام المعامل (_) $First_name3 - يمكنك استخدام ألف حرف في تسميه المتغيرات (وفي الواقع هي غير محدده) . علامات التنصيص وهذه نقطة مهمة وهي لماذا وضعنا علامات التنصيص هذه ؟ فالإجابه تكون هي أن القيمة التي وضعناها حرفية أي تتكون من نصوص وهناك أنواع للمتغيرات وعلى ذلك سنفصل ونقول هناك انواع للبيانات وهي :1 - strings (حروف)$Exa = “Just An Example”;$Exa2 = “2.5”;$Exa3 = “2”;2 - Integer (ارقام)$Exam = 5;3 - Double (ارقام ذات فواصل )$num= 5.44 - array ياتي تفصيلها فيما بعد 5 - objects تفصيلها في دروس اخري6 - Unknown .ياتي تفصيلها في درس اخر . المتغيرات لايتم تعريف نوعها من قبل المبرمج إنما مترجم الـPHP يقوم بالتعرف عليها لكي يتم إتمام العمليات المختلفه عليها . البيانات الحرفيه / في الـPHP أي قيمة تكون بين علامتي تنصيص عادية أو علامة تنصيص مفردة يعتبرها الـPHP قيمة حرفية أمثلة : “هذا النص بين علامتي تنصيص عاديه اومزدوجه”‘هذا النص بين علامتي تنصيص مفرده او وحيده’ يجب أن يبدأ النص وينتهي بنفس علامة التنصيص ، وإلا فلن يتعرف الـPHP على القيمة الحرفية أو على النص .<?$d=غلط echo خطا ?>لايمكنك أيضاً أن تقوم بوضع علامة تنصيص من نفس النوع التي تستخدمه القيمة الحرفية في وسط العبارة الحرفية أو النص <?$variable = “هذا النص "خطابسبب وجود علامة في النص من نفس النوع"”;?> وتصحيحه <?$variable = صحيحهذا النص”;?>وأيضا مثال آخر <?$r = “This isBAD”; // خطأ$t = “This is ‘good”; // صحيح?>أما إذا كنت مصراً على ذلك أو تحتاج إليها في عمليات ضرورية (كما سوف نري فيما بعد حاجتنا إليها في صناعة النماذج ) فيمكنك وضع معامل (\) قبل علامة التنصيص .لكي تعمل معك بكل سهولة . مثال :<?$u = “This Only An \” Example\” To Make You Understand Nothing”;?> طيب ما رأيك لو أردنا أن نطبع المعامل (\) بنفسه ؟ الحل هو أن نتبعه بمثله ، وبالمثال يتضح المقال : $file = "c:\windows\system.ini";
echo $file; // النتيجه c:windowssystem.ini



$file = "c:\\windows\\system.ini";
echo $file; // النتيجه c:\windows\system.ini يمكنك الجمع بين أكثر قيم المتغيرات في متغير واحد عن طريقة الـ(.) <?$first = “منتدي” ;$last = “المطور العربي”;$fullname = $first. $lastEcho $fullname ;//ولكننا نريد وضع فراغ بين الكلمتين$fullname= $first . ’ ’ . $last ;Echo $fullname ;?> وأيضا يمكننا أن ضيف إلى متغير قيمة متغير آخر :<?$f="I Love M" ;$k= "y Country" ;//إضافه القيمة الى المتغير$f = $f . $k;echo $f;?> <?//تقريباً نفس العملية $f="I Love M" ;$k= "y Country" ;$f.=$k;echo $f;?>

الارقام


العدد الفردي والمزدوجالاختلاف المعروف لدي أنا حتى الآن هو أن الفرق بينهما هو الفاصلة العائمة (والله حتي اعطاءها هذا الاسم يجعل الواحد يشعر بالاحباط والخوف )لاحظ أننا لا نستخدم علامات التنصيص وذلك ليعرف الـPHP أنها بيانات رقمية قد نستخدمها في عمليات حسابية معقدة ويمكننا تطبيق عمليات حسابية بسيطة عليها إذا كانت حرفية . //هذا عدد فردي$j=2//هذا عدد مزدوج$h=4.5

العمليات الحسابيه


هي مثل الجمع والطرح والضرب والقسمة وهي مرتبة كالتالي :أولاً /الأقواس ثانياً /الضرب ثم القسمه .ثالثاً / الطرح ثم الجمع <?Echo 5*2/5;Echo 5*(2/5) ;?> مثال آخر : <?Echo 5-6+9 ;?> مثال لعملية حسابية نستخدم فيها متغير حرفي <?$W="2L";$E= 2;$F = $W * $E;echo $W .' ' .$E .' ' .$F;?>مثال لعملية أخري لكنها لم تعمل وعليك استنباط السبب بنفسك (هاه طل زين ) :<?$W=”L10”;$E= 2;$F = $W * $E;echo $W .’ ‘ .$E .’ ‘ .$F;?>يمكننا إضافة رقم واحد الى متغير بثلاث طرق متنوعة :مثال $j++أو $j = $j+1أو $j += 1 ويمكننا على ذلك إضافه المتغير إلى نفسه كالتالي : $j += $jأو كالتالي : $j = $j + $j

متغيرات النظام


هناك متغيرات يستخدمها النظام يمكنك أن تستعملها ومنها $HTTP_USER_AGENTالتي تظهر لديك نوع المستعرض الذي يستخدمه العميل مثال :<?Echo $HTTP_USER_AGENT ;?>

الثوابت


يمكننا تعريف الثوابت بقول أنها قيم ثابتة لاتتغير ونعرفها عن طريق الدالة defineالثوابت حساسة أيضا لحالة الآحرف <?Define (“author”, “alfarees”);Echo “author is “ . author ;?> هناك ثوابت يستخدمها النظام مثلPHP_OS التي تقوم بعرض نظام التشغيل الذي يستخدمه السيرفر مثال :<?Echo PHP_OS;?> معرفه وتحويل انواع البيانات إذا أردت أن تعرف نوع متغير ما يمكنك استخدام الدالة gettype مثال :<?$n=5;$l ="hi";echo "The n Is " . gettype ($n) . "<br>";echo "The l is " . gettype ($l);?> إذا أردت تحويل نوع متغير ما يمكنك ذلك باستخدام الدالة settype : مثال : <?$n = 10 ;echo "Before is " . gettype ($n) ."<br>";settype ($n,"string");echo "After That is go " . gettype ($n);?> الدالة isset لمعرفة إذا كان المتغير منشأ مسبقاً أم لم يتم انشاؤه وهي لا تتطلب غير اسم المتغير الذي تريد فحص وجوده وتقوم بارجاع القيمة (1) إذا كان المتغير تم انشاؤه ولاترجع أي قيمة إذا كان المتغير غير منشأ أو موجود . مثال : <?$n = “n”;Echo isset ($n);?> الدالة unset تقوم بحذف المتغير إذا كان موجوداً وتحرير الذاكرة منه ( لذلك تأكد جيداً قبل استخدام هذه الدالة من اعطاء دمعة الوداع للمتغير المسكين ) <?$n = “n”;unset ($n);Echo isset ($n);?> الداله empty تقوم بإرجاع القيمة ( 1 ) إذا كان المتغير غير منشأ أو أن القيمة التي فيه صفر (0) أو نص فارغ ("") ولاتقوم بإرجاع أي شي اذا كان المتغير منشأ وفيه قيم غير المذكورة .
الرجوع الى أعلى الصفحة اذهب الى الأسفل
alomami
عضو مبدع

عضو مبدع
alomami



لغة ( PHP ) Empty
مُساهمةموضوع: رد: لغة ( PHP )   لغة ( PHP ) Icon_minitime103/10/11, 11:12 pm

داوال الوقت التاريخ






نستطيع
إيجاد الوقت و التاريخ عن طريق دوال في الـ
PHP من تلك الدوال الدالة



gmdate
()



مثال
:



<?



Echo gmdate (m);



Echo gmdate (M);



?>






لاحظ أن هناك فرق في
النتائج مع أننا نستخدم نفس الحرف لكن طريقه العرض تختلف عندما يكون الحرف كبيراً أو
صغيراً .








تحتجز الـphp بكثير من الدوال والكلمات المحجوزة التي تقوم بعمليات مختلفة مثل
العمليات الحسابية المعقدة والقيام بإيجاد الوقت والتاريخ وإرسال الرسائل البريدية
وإيقاف السكربتات لعدة ثواني هذه الدوال ليس مطلوب منك أن تحفظها كما تحفظ اسمك إنما
المطلوب منك أن تفهم ماهية عملها واستخدامها في الوقت الذي تراه مناسباً .






يمكنك
أيضا عرض اليوم والشهر






مثال



<?



Echo gmdate ("M D");



?>






لاحظ
أننا استخدمنا علامات التنصيص لكي تنجح العملية عندما قمنا باستخدام أكثر من عامل
في الدالة






جرب
استخدام الكود التالي :






<?




Echo gmdate ("D, d M Y H:i:s")



?>
الرجوع الى أعلى الصفحة اذهب الى الأسفل
الحلم الضائع
عضو مبدع

عضو مبدع
الحلم الضائع



لغة ( PHP ) Empty
مُساهمةموضوع: رد: لغة ( PHP )   لغة ( PHP ) Icon_minitime104/10/11, 01:25 am

مشكور علي مجهودك الرائع الذي قدمته لنا
الرجوع الى أعلى الصفحة اذهب الى الأسفل
alomami
عضو مبدع

عضو مبدع
alomami



لغة ( PHP ) Empty
مُساهمةموضوع: رد: لغة ( PHP )   لغة ( PHP ) Icon_minitime104/10/11, 01:47 am

العفو اختي حلم واتمنى ان يستفيد الجميع
الرجوع الى أعلى الصفحة اذهب الى الأسفل
ليبيا في دمي
عضو

عضو
ليبيا في دمي



لغة ( PHP ) Empty
مُساهمةموضوع: رد: لغة ( PHP )   لغة ( PHP ) Icon_minitime103/11/11, 01:05 pm

مشكور اخي الكريم شرح مميز
الرجوع الى أعلى الصفحة اذهب الى الأسفل
ثائر حر
عضو نشيط

عضو نشيط
ثائر حر



لغة ( PHP ) Empty
مُساهمةموضوع: رد: لغة ( PHP )   لغة ( PHP ) Icon_minitime122/12/11, 02:59 pm

لغة ( PHP ) 062373c4eec
الرجوع الى أعلى الصفحة اذهب الى الأسفل
 
لغة ( PHP )
الرجوع الى أعلى الصفحة 
صفحة 1 من اصل 1

صلاحيات هذا المنتدى:لاتستطيع الرد على المواضيع في هذا المنتدى
منتدى شباب 17 فبراير :: منتديات شباب 17 فبراير للكمبيوتر والانترنت :: منتدى عالم الأنترنت-
انتقل الى: