پیاچپی (PHP) یکی از پر طرفدارترین زبانهای پردازهنویسی (اسکریپتینگ) متن باز (Open Source) است که بیشتر برای طراحی برنامههای سمت سرور در وبگاههای پویا (Dynamic) مورد استفاده قرار میگیرد. PHP مخفف PHP: Hypertext Preprocessor (پیشپردازنده فرامتن) میباشد. پیاچپی در سال ۱۹۹۴ ایجاد شد. رسموس لردورف (Rasmus Lerdorf) ایجاد کننده اولیه آن بوده است ولی در طی زمان این زبان برنامهسازی، توسط سایر کارشناسان و برنامهنویسان تکمیل گردیده و به شکل کنونی آن درآمدهاست.
پیاچپی از زبانهای پردازهنویسی تحت وب است. ساختار این زبان بسیار شبیه زبان سی (C) و زبان برنامهنویسی پرل (Perl) میباشد. شکل پذیری فوق العاده آن و نیز همگونی با اغلب بانکهای اطلاعاتی از قبیل MySql قدرت آن را افزایش داده است.
مشهورترین نرمافزارهای(بسته های) ایجاد شده با پیاچپی عبارتاند از phpBB ، SMF ، Mambo ، Joomla ، PHPNuke ، mybb و مدیاویکی (MediaWiki) (که این وبگاه با آن طراحی شده). پیاچپی میتواند جایگزینی برای زبانهای ASP.NET و JSP و Perl باشد. همچنین یکی از بهترین نمونههای برنامهنویسی php در سطح وسیع سایت فیسبوک[۱] است.
سادگی استفاده از پیاچپی و شباهت آن به زبان سی و پرل (و از نسخه ۵ آن به جاوا) باعث شده که اغلب برنامه نویسان با تجربه در کوتاهترین زمان ممکن برنامههای کاملی را ایجاد کنند.
پیاچپی تنها یک زبان پردازهنویسی نیست و با استفاده از PHP-GTK میتوان برای طراحی برنامههای با ظاهر گرافیکی (GUI) و همچنین طراحی برنامههای خط فرمان شبیه پرل یا پایتون (Python) از آن استفاده کرد.
پیاچپی امکان استفاده از انواع مختلفی از پایگاههای داده را از جمله MySQL، اوراکل، IBM DB۲ ،Microsoft SQL Server ،PostgreSQL و SQLite با دستورهایی ساده فراهم میسازد.
پیاچپی روی بیشتر سیستمعاملهای معروف از جمله لینوکس، یونیکس، ویندوز و Mac OSX و با اغلب کارگزارهای وب (Web Server) معروف، قابل اجراست.
پیشینه
پی اچ پی در آغاز جایگاه شخصی داشت.در ابتدای سال ۱۹۹۴ عموما مانند زبان برنامه نویسی سی به صورت باینری توسط برنامهنویسان دانمارکی/گرینلندی به نام رسموس لردورف نوشته شد.لردروف در اصل این ابزار را ایجاد کرد تا یک مجموعه کوچکی از پردازه (اسکریپت) را جایگزین کند.او سعی میکرد که صفحات شخصی را حفظ کند. این ابزار برای این استفاده میشد کهوظایفی مانند نمایش دادن خلاصه تجربیات و حفظ کردن اینکه چقدر از این صفحه مورد استفاده قرار میگیرد را انجام دهد. او این دو را با مفسرش ترکیب کرد تا پی اچ پی /اف آی را ایجاد کند چون بیشتر کاربرد داشت.پی اچ پی/اف آی شامل پیاده سازی برای زبان برنامه نویسی c بود و میتوانست با پایگاه داده ارتباط یابد.قابلیت ساخت ساده و پویا برای کاربردهای وب .لردروف پی اچ پی رو در ۱۹۹۵ رها کرد تا کد آنرا بهبود ببخشد و اشکالات انرا برطرف کند.این واگذاری به نسخه دوم پی اچ پی منجر شد و هم اکنون استفاده میشود. پی اچ پی متشکل از شبیه سازی و دستکاری کردن متغیرها توانایی جاسازی HTML بود.ترکیب آن مانند پرل اما محدود تر ٬ساده تر و پایدار تر بود. زیو سوراسکی و اندی گاتمنز دو توسعه دهنده در فناوری IIT اسرائیلی بودند که پارسر را در سال ۱۹۹۷ دوباره نوشتند و اساس پی اچ پی ۳ را تشکیل دادند با تغییر دادن نام زبان به پی اچ پی بازگشتی : پیش پردازنده مافوق متن. گروه توسعه یافته رسما پی اچ پی /اف آی ۲ را در نوامبر ۱۹۹۷ بعد از دو ماه تجربه و آزمایش منتشر کرد. پس از آن آزمایش عمومی پی اچ پی ۳ آغاز شد و زبان رسمی در ژوئن ۱۹۹۸ تشکیل شد.سوراسکی و گاتمنز گروهی را برای باز نویسی پی اچ پی تشکیل دادند و ماشین Zend را در ۱۹۹۹ تولید کردند.آنها همچنین تکنولوژی آن را در اسرائیل تاسیس کردند. در۲۲ ماه مه۲۰۰۰ پی اچ پی ۴ که توسط ماشین Zend رو به کار آمده بود منتشر شد.در۱۳ ژوئیه ۲۰۰۴ پی اچ پی ۵ که توسط ماشین ۲Zend نیرو گرفته بود منتشر شد.پی اچ پی ۵ دارای ویژگیهایی مانند پشتیبانی از زبان شی گرا (برای پایگاه داده) و وسعت بسیار زیاد کارایی آن بود. پی اچ پی ای که اخیرا توسط گروه پی اچ پی منتشر شده نسخه ۴ ان است. در آگوست ۲۰۰۸ این نسخه به ۴٫۴.۹ توسعه یافت. در سال ۲۰۰۸ پی اچ پی ۵ تنه نسخه استوا و ثابت در دست توسعه بود .پی اچ پی ۶ در کنار پی اچ پی ۵ در دست توسعهاست. تغییرات عمده آن شامل از بین بردن متغیرهای رجیستری است. پی اچ پی کاملا از یونیکد یا رشتههای چند بایتی حمایت نکرد.یونیکد در پی اچ پی ۶ پشتیبانی خواهد شد. این نسخه در هر دو محیط ۳۲ و ۶۴ بیتی اجرا خواهد شد.
کاربرد
پی اچ پی یک زبان اسکریپتنویسی برای وب است.پی اچ پی عمدتا برروی سرور وب اجرا میشود. پی اچ پی کد برنامه را به عنوان ورودی میگیرد و صفحات وب را به عنوان خروجی ایجاد میکند. همچنین میتواند برای اسکریپت کردن خط فرمان استفاده شود.پی اچ پی میتواند بر روی صفحات وب و سیستمهای عامل و یا پایگاههای داده مستقر شود. همچنین میتواند به عنوان سیستم مدیریتی پایگاه داده استفاده شود.پی اچ پی رایگان هست و گروه پی اچ پی منبع کاملی از کد آن را در اختیار کاربران قرار میدهد.همچنین میتوان از آن برای کاربردهای شخصی استفاده کرد. پی اچ پی عمدتا مانند یک فیلتر عمل میکند.به این صورت که ورودی را به صورت متن یا دستور العملهای پی اچ پی میگیرد و خروجی را تولید میکند.خروجی آن غالبا از نوع اچ تی ام ال میباشد.این زبان میتواند کد باینری را برای ماشین زند تولید کند. از پی اچ پی عمدتا در طراحی وب استفاده میشود.
میزان بهینه سازی
همزمان با اسکریپت کردن زبانها٬ساختار الگو گونه برای نمایش ترتیب حوادث PHP به طور طبیعی به صورت کد مرجع خوانا برای تولید سرورهای وب نگه داری میشود . بنابر این ساختار الگوگونه برای PHP در زمان اجرا توسط ماشین PHP کامپایل خواهد شد.کامپایل کردن در زمان اجرا دفعات اجرای فایل آغاز گر را افزایش میدهد.چون یک مرحله اضافه به زمان اجرا می افزاید. ساختار الگوگونه PHP میتواند قبل از زمان اجرا توسط مترجم هایی درست شبیه زبانهای برنامه نویسی همچون C ترجمه شود.( زبان برنامه سازی PHP برنامه دار است تا جائیکه برای تمدید کردن آن استفاده شود.) کد میتواند کیفیت کد کامپایل شده را با کم کردن اندازه آن و ایجاد کردن تغییراتی که بتواند زمان اجرا را کاهش دهد و کارایی را بهبود ببخشد بالا ببرد و بهینه نماید. نوع کامپایلر PHP آنچنان است که اغلب فرصت برای بهینه سازی کد آن وجود دارد.به طور مثال میتوان برای بهینه سازی کد بهینه ساز Zend را نام برد. شتابگر PHP میتواند سطح کارایی را با ذخیره کردن نوع کامپایل شدهای از ساختار PHP در حافظه تسهیم شده بالا ببرد تا از هزینههای تجزیه و کامپایل کد در زمان اجرا جلوگیری شود. ایمنی: میزان ناامنی نرمافزار نوشتاری PHP که توسط نرمافزارهای رایج دیگر در معرض آسیب پذیری است به این صورت میباشد: ۱۲ درصد در سال۲۰۰۳، ۲۰ در صد در سال ۲۰۰۴، ۲۸ در صد در سال ۲۰۰۵، ۴۳ در صد در سال ۲۰۰۶، ۳۶ در صد در سال۲۰۰۷، و ۳۳ در صد در بخشی از سال ۲۰۰۸، بیشتر از یک سوم آسیب پذیری نرمافزار PHP به تازگی صورت گرفته .اغلب آسیبها با پیروی نکردن از قوانین برنامه نویسی ایجاد میشود و این آسیبها مرتبط با نسخه قدیمی PHP است. یکی از مهمترین این نا امنیها متغیرهای رجیستری هستند که از سال ۲۰۰۲در PHP نسخه ۴٫۲ بدون استفاده شده اند.یک برنامهٔ PHP میتواند قسمتی از یک برنامهٔ HTML باشد.PHP کد را بدون تعیین حدود کردن تجزیه میکند.هر چیزی خارج از این محدوده به طور مستقیم به خروجی فرستاده میشود و توسط PHP تعیین نمیشوند.حدود رایج و مشترک <? و php?> است که به ترتیب بسته کردن و باز کردن میباشد. علائم کوتاه میتواند برای شروع کد به کار روند: =?> یا ?> و علامتی که برای پایان کد به کار میرود:<? این علائم به طور رایج استفاده میشود.اما علائمی مانند <% و =% > یا %> کمتر مورد استفاده قرا میگیرند. به همین خاطر استفاده ازعلائم کوتاه و ASP کم شده است. هدف از اینها جدا کردن PHP و HTML میباشد. متغیر هایی که قبل از آنها علامت $ به کار میرود لازم نیست مشخص شوند .بر خلاف نامها و توابع کلاس نام متغیرها به کوچک و بزرگ بودن حروف حساس است.PHP در حالت زبان form free با خط جدید و فاصله سرو کار دارد( به جز در رشته ها) و جملهها با سمی کالن تمام میشوند.PHP دارای سه نوع روش برای توضیحات میباشد.از/* */ و // برای توضیحات استفاده میشود.همچنین از # برای توضیحات کوتاه استفاده میشود. PHP در واژگان مانند زبانهای سطح بالا همچون C است.if شرطی- حلقههای while و for و توابع بازگشتی شبیه به زبان C و ++C است.