Hicham Al Sayed ahmed

اهلا و سهلا بكم في منتدى تقنيات الحاسوب 2013

منتدى و عالم تقنيات الحاسوب و البرمجة وانظمة التشغيل و الصيانة 2013

تؤمن لكل من يحب ان يتعلم البرمجة و كل من يدرس في هذا الاختصاص برامج و مواضيع و افكار جديدة و كيفية العمل و الكثير و الكثير و ايضا تتيح لاي شخص ان ينضم لهذا المنتدى و خاصة طلاب تقنيات الحاسوب و انظمة التشغيل و الصيانة المادية و البرمجية
تعلم الفجوال بيسك - الدلفي - السي ++ - الباسكال و الكثير و الكثير

اطرح سؤالك على فريق العمل في الفيسبوك

تابعنا على الفيسبوك

مشاركة الموضوع عبر الفيسبوك

Log in

I forgot my password

Top posting users this week

Who is online?

In total there is 1 user online :: 0 Registered, 0 Hidden and 1 Guest

None


Most users ever online was 85 on Tue Nov 05, 2013 5:00 am

تابعنا على الفيسبوك


لغة ( PHP )

Share
avatar
سيد برتوكول
Administrator
Administrator

نقاط : 146584

default لغة ( PHP )

Post by سيد برتوكول on Wed Dec 21, 2011 2:41 am

تتميز لغة
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.


مع تحيات سيد برتوكول
avatar
سيد برتوكول
Administrator
Administrator

نقاط : 146584

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

Post by سيد برتوكول on Wed Dec 21, 2011 3:07 am

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





لانريد
هنا أن نذهب إلى التكلم عن تاريخ انترنت العتيق ، النقطة المهمة هي الشبكة المربوطة
بنقاط
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.






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 - ماينفذ من جهة المستعرض (صفحة انترنت) .
مع تحيات سيد برتوكول
avatar
سيد برتوكول
Administrator
Administrator

نقاط : 146584

default التعليقات

Post by سيد برتوكول on Wed Dec 21, 2011 3:13 am

التعليقات


ما رأيك إذا كنت في شركة وكان معك أكثر من مبرمج وأردتم تصميم برنامج ، اإذن قد تحتاجون لتنظيم العمل وتعديله لذا من اللازم أن تقوم بعمل توضيح لفائدة الكود الذي كتبته كي يسهل فهمه عليهم وإضافة تعديلات مناسبة ، إذن التعليقات تستخدم في الإفاده عن شرح الأكواد أو إضافة معلومات لاتستعمل إلا كتوضيح أو أي شي آخر . يمكنك عمل تعليق من سطر واحد كالتالى :<?//هذا تعليق لافائدة له له اي معني?>مثال آخر :<?//هذه الداله تقوم بطباعه الكلمه تعليق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) أو
نص فارغ ("") ولاتقوم بإرجاع أي شي اذا كان المتغير منشأ وفيه قيم غير المذكورة .
مع تحيات سيد برتوكول
avatar
عفريت السويداء
عضو مميز
عضو مميز

نقاط : 1157

default Re: لغة ( PHP )

Post by عفريت السويداء on Wed Dec 21, 2011 3:23 pm

أبو حنفي

معلومات جميلة عن هذه اللغة

انشاله ندرسا بالمستقبل

الله يعطيك العافي على المجهود

لك تحياتي



    Current date/time is Fri Dec 14, 2018 11:37 pm