بي إتش بي (PHP: Hypertext Preprocessor، 'الصفحة الرئيسية الشخصية': "المعالج المسبق للنصوص الفائقة") هي لغة برمجة نصية صممت أساسا من أجل استخدامها لتطوير وبرمجة تطبيقات
الوب. كما يمكن استخدامها لإنتاج برامج قائمة بذاتها وليس لها علاقة بالوب فقط.
بي إتش بي لغة مفتوحة المصدر ويطورها فريق من المتطوعين تحت رخصة PHP، تدعم
البرمجة كائنية التوجه وتركيبها النحوي يشبه كثيرا التركيب النحوي للغة السي هذا بالإضافة إلى أنها تعمل على أنظمة تشغيل متعددة مثل لينكس وويندوز.
تاريخية
PHP/FI
ظهرت php أولا في سنة 1995 على يد راسموس ليردورف
(Rasmus Lerdorf) كانت تسمى وقتها بـ PHP/FI وفي الحقيقة لم تكن لغة برمجه
وقتها وانما كانت مجموعه من التطبيقات التي كتبت باستخدام لغة Perl
أطلق راسموس اسم Personal Home Page Tools على هذه التطبيقات، لانه احتاج
فيما بعد إلى تطبيقات أكثر فائده قام راسموس بكتابة تطبيق أكبر باستخدام
لغة C حيث أصبحت قادرة على الاتصال بقواعد البيانات
كما أنها كانت تسمح للمستخدمين بتطوير تطبيقات مواقع ديناميكيه بسيطه،
اختار راسموس ان تكون الشيفرة المصدرية الخاصة بـ PHP/FI متوفره للجميع لذا
كان يمكن لأي شخص ان يستخدمها ويقوم بتحسينها والمشاركة في حل اخطاءها
ومشاكلها.
كانت PHP/FI وقتها تحوي على بعض الوظائف المتوفرة بالإصدارات الحالية من اللغه، كما أن المتغيرات كانت تشبه متغيرات Perl، وكانت تركيبها النحوي يشبه Perl بالرغم من بساطتها ومحدودياتها.
في عام 1997
تم إطلاق الإصدار 2.0 من PHP/FI، حيث بلغ عدد مستخدميها آنذاك 50,000
نطاق، وكان هناك مجموعه من الأشخاص الذين يشاركون في التطوير، وتم إطلاق
الإصدار الرسمي من 2.0 في شهر نوفمبر من نفس العام بعد العديد من الإصدارات التجريبية بيتا.
PHP 3
في عام 1997 تم إعادة كتابة PHP/FI على يد زيف سوراسكي وأندي جتمانز
بعدما وجدوا ان PHP/FI 2.0 ليست قويه بما فيه الكفاية من أجل كتابة تطبيق
تجارة إلكترونية والذي كانوا يعملون عليه كمشروع تخرج لجامعتهم، كان هناك
تعاون بينهم وبين مؤسس اللغه راسموس ليردورف على ان تكون PHP 3.0 هي النسخة الرسمية بعد PHP/FI.
أحد أهم الميزات التي تميزت بها PHP 3 عن سابقتها انها أصبحت قابلة للتوسع
وتوفر مع هذا الإصدار العديد من المكتبات والدوال، وادت قابلية التوسع إلى
إقبال العديد من المطورين على تطوير المكتبات الجديدة واضافتها مع اللغه،
ويقال ان هذا هو السبب الأساسي للنجاح الذي حققه هذا الإصدار، ومن الميزات
الأخرى التي تمت اضافتها في هذا الإصدار هي البرمجة كائنية التوجة.
وفي هذا الإصدار تم تغيير اسم اللغه ووضعها تحت اسم جديد وهو PHP (بدون
FI) والذي كان يحمل اختصارا لمعنى جديد مختلف عن الإصدار السابق والمعنى هو
"PHP: Hypertext Preprocessor".
تم إطلاق PHP 3.0 في يونيو 1998 بعد 9 أشهر من الاختبارات.
PHP 4
في عام 1998، وبعد الانطلاق الرسمي لـ PHP 3.0 بقليل بدأ زيف سوراسكي وأندي جتمانز بإعادة كتابة أساس لغة PHP وكان الهدف من ذلك هو تحسين الأداء للبرامج المعقدة والضخمة وتحسين قابلية اللغه للتوسع.
المحرك الجديد الذي ظهر بعد إعادة الكتاب تم تسميته بـ محرك زيند (بالإنجليزية: ZEND) واسم "زيند" مأخود من أوائل حروف أسماء مطوريه، ونجحوا في تحقيق اهدافهم عن طريق هذا المحرك، وتم الإعلان عنه في عام 1999.
تعتمد PHP 4.0 على هذا المحرك وتم الإعلان عن هذا الإصدار من PHP في مايو 2000، بالإضافه إلى تحسين الأداء في هذا الإصدار احتوى كذلك على مجموعه جديده من الميزات مثل دعمه لعدد أكبر من خوادم الوب، الجلسات، طرق آمنه جديده لمعالجة دخل المستخدم وغيرها.
وقد تم إعلان إيقاف تطوير ودعم PHP 4 في 13 يوليو، 2007
<?php
$page_title = "My website";
?>
<html>
<head>
<title>
</ti
<?php
echo $page_title;
?>
tle>
</head>
<body>
Hello
</body
>
الاستخدام
غالبا ما تعمل لغة بي إتش بي على خادم ويب، كما يمكن استخدامها كواجهة سطر أوامر أو استخدامها لتطوير برامج ذات واجهة رسومية تعمل على حاسوب المستخدم، يمكن استخدام بي إتش بي تحت معظم خوادم الوب كما أنها تعمل على معظم نظم التشغيل، كما أن فريق تطويرها يزود شيفرتها المصدرية كامله حيث يمكن للمستخدمين بناءها وتطويرها بما يناسب احتياجاتهم.
تقوم بي إتش بي أساسا بأخذ الملف الذي يحتوي على اوامر البي إتش بي (ملفات.php) كـ مدخل وتقوم بإخراج بيانات قابله للعرض.
في الإصدار الرابع من بي إتش بي، تقوم بتحويل الملفات المكتوبة باستخدام البي إتش بي إلى bytecode لمعالجتها عن طريق محرك ZEND،وفي الإصدار الخامس تقدمت لغة ال php بتقنيات عالية جدا وكان اخر اصدار من النسخة الخامسة هو 5.5.6.
استخدامها ناحية الخادم
في الحقيقة صممت بي إتش بي من أجل استخدامها من ناحية الخادم وبناء تطبيقات وب تفاعليه، وقد أصبح بناء LAMP
مشهورا جدا في صناعة الوب كطريقة برمجيات وب آمنة، غير مكلفة، ويمكن
الاعتماد عليها. بي إتش بي مشار إليها كحرف P في LAMP كـ لغة برمجه، بجانب لينكس (L) كـ نظام تشغيل، اباتشي (A) كـ خادم وب وماي إس كيو إل (M) كنظام إدارة قواعد البيانات. وقد ظهرت أيضا بناءات أخرى ك WAMP مستبدلة لينكس بـ ويندوز (W)، وMAMP مستبدله لينكس بـ ماك أو اس (M).
يمكن استخدام بي إتش بي مع عدد كبير من أنظمة إدارة قواعد البيانات، وبما انها متوفرة على عدد من نظم التشغيل جعل لها مرونة مكنت بي إتش بي من الانتشار.
استخدامها كسطر اوامر
توفر بي إتش بي كذلك واجهة سطر اوامر، لذا يمكن استخدامها لتطوير مجموعه من البرامج التي تسهل المهام الإدارية لمدراء النظم.
استخدامها ناحية العميل
توفر بي إتش بي مكتبات واجهات مستخدم رسوميه مثل GTK (عن طريق PHP-GTK) وQt (عن طريق PHP-Qt) مما يجعل تطوير البرامج غير المتعلقة بالوب امرا ممكنا.
التركيب النحوي
مثال لطباعة برنامج أهلا بالعالم:
<?php
echo 'أهلا بالعالم';
?>
وأيضا بهذا الشكل
تقوم PHP بتنفيذ ما هو بين الوسمين <?php و?> فقط، واي شيء خارج
هذا هذين الوسمين فيتم طباعته مباشره ولا يتم معاملته كـ شيفرة PHP، تمكن
هذه الميزة من إدخال شيفرات الـ PHP داخل شيفرات HTML، مثلا:
<html>
<head>
<title>
<?php
$page_title = 'Wikipedia';
echo $page_title;
?>
</title>
</head>
<nowiki> <body></nowiki>
Hello
<nowiki> </body></nowiki>
</html>
المتغيرات
تكون مسبوقة بعلامة الدولار - $ - ومن غير الضروري تعريف نوع المتغير،
بعكس أسماء الدوال والاصناف، المتغيرات حساسه لحالة الحرف، ومن أجل وضع
قيمه للمتغير يتم استخدام علامات الاقتباس المزدوجة - " - او المفردة - ' -
أو بدون أي علامة اقتباس بحيث تكون القيمة في هذه الحالة على أحدى الأشكال
التالية:
- من نوعية الأعداد بشقيها الاعداد العائمة والاعداد الصحيحة.
- من نوعية الثوابت.
- استدعاء احد الروتينات الفرعية بشكل مباشر.
- استدعاء احد الروتينات الفرعية عبر كائن (Object).
بي إتش بي لديها ثلاثة أنواع من التعليقات، /* */ والذي يستخدم
للتعليقات متعددة الاسطر، // و# والذين يستخدمون للتعليقات ذات السطر
الواحد.
أنواع البيانات
تقوم بي إتش بي بتخزين الأرقام بمدى يعتمد على المعالج التي تعمل عليه، هذا المدى نموذجيا يكون 32 بت من الاعداد الصحيحة، متغيرات الاعداد الصحيحة يمكن ان تكون قيمتها عشريه أو ثمانيه أو ست عشريه. الاعداد الحقيقيه كذلك تخزن بمدى يعتمد على المعالج.
لغة بي إتش بي تحتوي كذلك على نوع بوليان والذي يسمى بـ "boolean"، كما في لغة Perl الأرقام الأكبر أو الأصغر من صفر يمكن ان تعتبر true اما الصفر يمكن ان تعتبر false.
نوع البيانات null يمثل المتغيرات التي لا تحتوي على القيمة، والقيمة الوحيدة في هذا النوع من البيانات هي NULL.
المصفوفات تدعم الفهارس النصية والرقميه، المصفوفات يمكن ان تحتوي عناصر من اي نوع من البيانات التي تدعمها بي إتش بي.
الكائنات
في PHP 3 تم إضافة أساسيات البرمجه غرضية التوجه،
وتم إعادة كتابته في PHP 5 من أجل تحسين الأداء وإضافة المزيد من الميزات،
في الإصدارات السابقة من بي إتش بي كانت تعامل الكائنات كـ أنواع بدائيه (بالإنجليزية:
Primitive Types). وكانت نقطة ضعف هذا الأسلوب في أن الكائن كان ينسخ
كاملا عندما يتم تكليفه كـ متغير أو عندما يتم تمريره إلى الدوال، وقد تم
حل هذه المشكلة PHP 5.
في PHP 5 تم الإعلان عن الأنواع private وprotected لكل من الدوال والمتغيرات، وتم الإعلان عن الطريقة القياسية في تعريف المشيد (بالإنجليزية: constructors) والمهدم (بالإنجليزية: destructors).
class foo extendكيفية تعريف الصنف foo الذي يرث الصنف bar، وتعريف
الدالة العامة mystaticfunc والتي يمكن استدعاءها بالشكل التالي
foo::mystaticfunc();
الموارد
المكتبات
تضم بي إتش بي(PHP) عدد كبير من المكتبات الحرة والمجانية، أغلب هذه
المكتبات تعطي بي إتش بي طبيعتها كلغة لكتابة تطبيقات الوب، حيث تحتوي على
مكتبات للوصول إلى FTP ومجموعه من مكتبات الوصول إلى قواعد البيانات مثل MySQL وSQLite وغيرها، العديد من الدوال تشبه دوال لغة C.