PHP از زبانهای اسکریپتنویسی تحت وب است. ساختار این زبان بسیار شبیه زبان سی (C) و زبان برنامهنویسی پرل (Perl) میباشد. شکل پذیری فوق العاده آن و نیز همگونی با اغلب بانکهای اطلاعاتی از قبیل MySql قدرت آن را افزایش داده است.
» مشهورترین نرمافزارهای (بسته هاي) ایجاد شده با PHP عبارتاند از:
phpBB , SMF, Mambo , Joomla , PHPNuke , mybb و مدیاویکی (MediaWiki)
سادگی استفاده از PHP و شباهت آن به زبان C و Perl (و از نسخه ۵ آن به جاوا) باعث شده که اغلب برنامه نویسان با تجربه در کوتاهترین زمان ممکن برنامههای کاملی را ایجاد کنند.
PHP تنها یک زبان اسکریپتنویسی نیست و با استفاده از PHP-GTK میتوان برای طراحی برنامههای با ظاهر گرافیکی (GUI) و همچنین طراحی برنامههای خط فرمان شبیه پرل (Perl) یا پایتون (Python) از آن استفاده کرد.
PHP امکان استفاده از انواع مختلفی از پایگاههای داده را از جمله MySQL، Oracel، IBM DB۲ ،Microsoft SQL Server ،PostgreSQL و SQLite با دستورهایی ساده فراهم میسازد.
PHP روی بیشتر سیستم عاملهای معروف از جمله لینوکس، یونیکس، ویندوز و Mac OSX و با اغلب کارگزارهای وب (Web Server) معروف، قابل اجراست.
PHP یک تاریخچه است
PHP در آغاز جایگاه شخصی داشت.در ابتدای سال 1994 عموما مانند زبان برنامه نویسی C به صورت Binary توسط برنامه نویسان دانمارکی /گرینلندی به نام رسموس لردورف نوشته شد.لردروف در اصل این ابزار را ایجاد کرد تا یک مجموعه کوچکی از اسکریپت را جایگزین کند.او سعی می کرد که صفحات شخصی را حفظ کند. این ابزار برای این استفاده می شد که وظایفی مانند نمایش دادن خلاصه تجربیات و حفظ کردن اینکه چقدر از این صفحه مورد استفاده قرار می گیرد را انجام دهد. او این دو را با مفسرش ترکیب کرد تا PHP / FI را ایجاد کند چون بیشتر کاربرد داشت.PHP / FI شامل پیاده سازی برای زبان برنامه نویسی c بود و می توانست با پایگاه داده ارتباط یابد.قابلیت ساخت ساده و پویا برای کاربردهای وب .لردروف PHP را در 1995 رها کرد تا کد آنرا بهبود ببخشد و اشکالات انرا برطرف کند.این واگذاری به نسخه دوم PHP منجر شد و هم اکنون استفاده می شود.PHP متشکل از شبیه سازی و دستکاری کردن متغیر ها توانایی جاسازی HTML بود. ترکیب آن مانند پرل اما محدود تر ٬ساده تر و پایدار تر بود. زیو سوراسکی و اندی گاتمنز دو توسعه دهنده در تکنولوژی IIT اسرائیلی بودند که پارسر را در سال 1997 دوباره نوشتند و اساس PHP 3 را تشکیل دادند با تغییر دادن نام زبان به PHP بازگشتی : پیش پردازنده مافوق متن. گروه توسعه یافته رسما PHP / FI 2 را در نوامبر 1997 بعد از دو ماه تجربه و آزمایش منتشر کرد. پس از آن آزمایش عمومی PHP 3 آغاز شد و زبان رسمی در ژوئن 1998 تشکیل شد.سوراسکی و گاتمنز گروهی را برای باز نویسی PHP تشکیل دادند و ماشین Zend را در 1999 تولید کردند.آنها همچنین تکنولوژی آن را در اسرائیل تاسیس کردند. در 22 ماه مه 2000 PHP 4 که توسط ماشین Zend به کار آمده بود منتشر شد.در13 ژوئیه 2004 PHP 5 که توسط ماشین 2Zend نیرو گرفته بود منتشر شد.PHP 5 دارای ویژگی هایی مانند پشتیبانی از زبان شی گرا (برای پایگاه داده) و وسعت بسیار زیاد کارایی آن بود. نسخه ای که اخیرا توسط گروه PHP منتشر شده نسخه 4 آن است. در آگوست 2008 این نسخه به 4.4.9 توسعه یافت. در سال 2008 PHP 5 در دست توسعه بود .PHP 6 در کنار PHP 5 در دست توسعه است.تغییرات عمده آن شامل از بین بردن متغیر های رجیستری است. PHP کاملا از یونیکد یا رشته های چند بایتی حمایت نکرد.یونیکد در PHP 6 پشتیبانی خواهد شد. این نسخه در هر دو محیط 32 و 64 بیتی اجرا خواهد شد.
کاربرد:
میزان بهینه سازی:
همزمان با اسکریپت کردن زبانها٬ساختار الگو گونه براى نمايش ترتيب حوادث PHP به طور طبیعی به صورت کد مرجع خوانا برای تولید سرورهای وب نگه داری می شود . بنابر این ساختار الگوگونه برای PHP در زمان اجرا توسط ماشین PHP کامپایل خواهد شد.کامپایل کردن در زمان اجرا دفعات اجرای فایل آغاز گر را افزایش می دهد.چون یک مرحله اضافه به زمان اجرا می افزاید. ساختار الگوگونه PHP می تواند قبل از زمان اجرا توسط مترجم هایی درست شبیه زبانهای برنامه نویسی همچون C ترجمه شود.( زبان برنامه سازی PHP برنامه دار است تا جائیکه برای تمدید کردن آن استفاده شود.) کد می تواند کیفیت کد کامپایل شده را با کم کردن اندازه آن و ایجاد کردن تغییراتی که بتواند زمان اجرا را کاهش دهد و کارایی را بهبود ببخشد بالا ببرد و بهینه نماید. نوع کامپایلر PHP آنچنان است که اغلب فرصت برای بهینه سازی کد آن وجود دارد.
به طور مثال می توان برای بهینه سازی کد بهینه ساز Zend را نام برد. شتابگر PHP می تواند سطح کارایی را با ذخیره کردن نوع کامپایل شده ای از ساختار PHP در حافظه تسهیم شده بالا ببرد تا از هزینه های تجزیه و کامپایل کد در زمان اجرا جلوگیری شود. ایمنی: میزان ناامنی نرم افزار نوشتاری PHP که توسط نرم افزار های رایج دیگر در معرض آسیب پذیری است به این صورت می باشد: 12 درصد در سال2003 20 در صد در سال 2004 28 در صد در سال 2005 43 در صد در سال 2006 36 در صد در سال2007 و 33 در صد در بخشی از سال 2008 بیشتر از یک سوم آسیب پذیری نرم افزار PHP به تازگی صورت گرفته .اغلب آسیب ها با پیروی نکردن از قوانین برنامه نویسی ایجاد می شود و این آسیب ها مرتبط با نسخه قدیمی PHP است. یکی از مهمترین این نا امنی ها متغیر های رجیستری هستند که از سال 2002در PHP نسخه 4.2 بدون استفاده شده اند.
ترکیب:
PHP میتواند قسمتی از یک کد HTML باشد. PHP کد را بدون تعیین حدود کردن تجزیه می کند.هر چیزی خارج از این محدوده به طور مستقیم به خروجی فرستاده می شود و توسط PHP تعیین نمی شوند.حدود رایج و مشترک <? و php?> است که به ترتیب بسته کردن و باز کردن می باشد. علائم کوتاه می تواند برای شروع کد به کار روند: =?> یا ?> و علامتی که برای پایان کد به کار می رود، <? می باشد. این علائم به طور رایج استفاده می شود.اما علائمی مانند <% و =% > یا %> کمتر مورد استفاده قرا می گیرند. به همین خاطر استفاده ازعلائم کوتاه و ASP کم شده است. هدف از این ها جدا کردن PHP و HTML می باشد. متغیر هایی که قبل از آن ها علامت $ به کار می رود لازم نیست مشخص شوند .بر خلاف نامها و توابع کلاس نام متغیر ها به کوچک و بزرگ بودن حروف حساس است. PHP در حالت زبان form free با خط جدید و فاصله سرو کار دارد( به جز در رشته ها) و جمله ها با سمی کالن تمام می شوند.PHP دارای سه نوع روش برای توضیحات می باشد.از /* */ و // برای توضیحات استفاده می شود.همچنین از # برای توضیحات کوتاه استفاده می شود. PHP در واژگان مانند زبانهای سطح بالا همچون C است .if شرطی - حلقه های while و for و توابع بازگشتی شبیه به زبان C و ++C است.
شیوه کار برنامه
همانطور که گفته شد کد PHP میتواند بخشی از یک کد HTML باشد.
مثلاً در برنامهٔ زیر تنها
به زبان PHP است و بقیهٔ برنامه به زبان HTML نوشته شده است. برای جداسازی برنامهٔ PHP و برنامهٔ اچتیامال باید قسمت PHP را بین php?> و <? قرار داد. لازم به ذکر است که بجای تگ آغاز که همانا php?> است، میتوان از حالت خلاصه شده آن که به صورت ?> است استفاده نمود، ولی این کار استاندارد نبوده و بستگی به تنظیمات هنگام نصب php دارد. بنابر این توصیه میشود که از همان حالت کامل استفاده شود.
با صدا زدن صفحهای با متن بالا از سرور بهوسیله مرورگر در صفحه "Hello PHP" را میبینیم.
نوع داده:
PHP همه متغیرها را در یک محدوده مستقل ذخیره میکند .این محدوده به طور نمونه 32 بیت اعداد علامتدار است. اعداد بدون علامت در حالتهای معینی به مقادیر علامتدار تبدیل میشوند. این رفتار در زبانهای برنامه نویسی متفاوت است.متغیرهای صحیح میتوانند به صورت دهدهی (مثبت یا منفی) ٬هشت هشتی و شانزده شانزدهی مشخص شوند.
اعداد واقعی نیز در محدوده معینی ذخیره میشوند.آنها میتوانند به دو صورت اعشاری و علمی استفاده شوند.PHP دارای نوع محلی به نام بولین میباشد که شبیه به بولین در زبان جاوا و ++C است.در نوع داده بولین مقدار غیر صفر به عنوان درست و مقدار صفر به عنوان نادرست استفاده میشود.همانطور که در پرل و ++C نیز همین طور است.
نوع داده null برای متغیرهایی که هیچ مقداری ندارند استفاده میشود.متغیرهایی با نوع مرجع به منابع خارجی اشاره میکنند.اینها نوعا توسط توابع ایجاد میشوند و تنها میتوانند با همان تابع مورد استفاده قرار گیرند.مانند پوشهها و عکسها و پایگاه داده.PHP آرایهها و رشتهها را هم حمایت میکند.
کتابخانه استاندارد PHP (SPL) به منظور حل مسائل استاندارد و دسترسی به دادههای موثر و کلاسها به کار میرود.