PHP یک زبان برنامه نویسی است که آوازه آن با سرعت زیادی در همه محافل برنامه نویسی پیچید. این زبان در اصل به عنوان مجموعه ای از ماکروها (برنامه های آماده) جهت کمک به افرادی که مشغول طراحی صفحات وب بودند ایجاد شد . ولی به زودی اهداف بزرگتر و مهم تری از صفحات خانگی را نشان کرد. از آن زمان تا به حال قابلیتها و توانایی های PHP توسعه زیادی یافته است به گونه ای که یکسری ابزارها و برنامه های سودمند به یک زبان برنامه نویسی کامل قوی و کارآمد تبدیل شده و هم اینک می توان توسط آن به مدیریت سایت های بسیار بزرگی که حجم وسیعی از داده ها را در بانک های اطلاعاتی نگه داری می کنند پرداخت.
نیازهایی که PHP می تواند برآورده کند.
عمومیت و مقبولیت این زبان نیز به موازات رشد توانایی ها و قابلیتهای آن افزایش پیدا کرد.طبق آمار منتشر شده در سایت Netcraft به آدرس اینترنتی http://www.netcraft طراحی و برنامه نویسی بیش از یک میلیون وب سایت مختلف تا ماه نوامبر 1999 توسط زبان php صورت گرفته است و این رقم تا ماه سپتامبر 2001 به رقم شش میلیون سیر صعودی خود را طی کرده است . همچنین طبق آمار منتشر شده در وب سایت http://www.securityspace.com زبان phpمهمترین ماجول قابل استفاده بر روی وب سرور Apach است که بدین ترتیب از ماجول بسیار محبوب mod_ssl نیز پیشی گرفته است .
عنوان رسمی PHP عبارتست از PHP: Hypertext preprocessor(لازم به توضیح است که برای حاصل شدن نام PHPمی بایست عنوان Hypertext preprocessor را به صورت بازگشتی ،یعنی به شکل Hypertext preprocessor Hyper text… تلفظ کنید_مترجم).این زبان یک زبان اسکریپت نویسی برای سمت سرور است که معمولا خود در متن یک سند HTML نوشته می شود برخلاف صفحات HTML معمولی ،اسکریپت های PHP توسط سرور به سمت کلاینت ارسال نمی شوند .بلکه توسط برنامه ویژه ای موسوم به موتور PHP مورد تجزیه قرار میگیرند. طی این فرایند عناصر HTMLاز برنامه اسکریپت نوشته شده با PHP حذف شده و کد PHP حذف شده و کد PHPباقیمانده پس از ترجمه اجرا می گردد. برنامه های PHP قابلیتهای بسیار متعدد و متنوعی همچون پرس و جو از بانکهای اطلاعاتی ، ایجاد تصاویر گرافیکی ، نوشتن و خواندن فایل ها، محاوره با سرویس دهنده های راه دور و بسیاری از قابلیتها متصور شد. پس از اجرای کد PHP خروجی برنامه با عناصر HTML ترکیب شده و نتیجه برای مشاهده کاربر به سمت کلاینت گسیل می شود.
نیازهایی که PHP می تواند برآورده کند
—— اسکریپت نویسی و زبانهای برنامه نویسی اسکریپت به موازات وب رشد کرده و توسعه پیدا کرده اند. از آنجا که نیاز به ایجاد سایت هایی با محتوای پویا و غیر استاتیک در سالهای اخیر بیش از گذشته احساس میشود بنابراین بیش از همیشه به روشها، شیوه ها و ابزارهایی جهت توسعه سریع و کارآمد محیطهای Online نیازمندیم. با وجودی که زبان برنامه نویسی C را میتوان یک ابزار کارآمد در رابطه با توسعه سریع ابزارهای سمت سرور به حساب اورد اما بهره گیری از این زبان به سادگی امکان پذیر نبوده و علاوه بر این در صورتی که توجه خاصی حین توسعه برنامه های مربوطه با این زبان برنامه نویسی محبوب صورت نگیرد، به سادگی می توان شکافهای امنیتی خطرناکی را انتظار داشت. از سویی دیگر، زبان Perl یک زبان برنامه نویسی است که در اصل جهت پردازش رشته های کاراکتری طراحی شده و طبیعتاً خلاً موجود در رابطه با فقدان محیطهای پویای وب را پر کرده است. زبان Perl در این رابطه از امنیت بیشتری نسبت به زبان برنامه نویسی C برخوردار بوده و کارایی پایین تر آن نسبت به زبان مذکور، همواره با سرعت بالای توسعه ان جبران شده است. علاوه بر این تعداد کتابخانه های قابل توجهی که به روز نیز بر تعداد آنها اضافه می شود، از دیگر نقاط قوت زبان Perl محسوب میشود. اما در این بین زبان PHP در کدام جایگاه قرار دارد؟ زبان PHP به طور ویژه برای توسعه برنامه های وب ایجاد شده است. از این رو مسائل و مشکلاتی که اغلب برنامه نویسان وب را مشغول به خود می کند از طریق خود زبان حل و فصل شده اند. به دو نمونه از این مسائل توجه کنید:
* برنامهنویسان Perl جهت دستیابی به داده ها و اطلاعاتی که کاربران وب در فرم های مختلف وارد میکنند، همواره نیازمند استفاده از یک کتابخانه خارجی بوده و یا مجبورند تا کدهای مورد نیاز را خود تولید نمایند. این در حالی است که PHP چنین اطلاعاتی را به طور خودکار در اختیار برنامه نویسی قرار داده است.
* برنامه نویسان perl جهت نوشتن برنامه هایی که نیازمند دستیابی به اطلاعات موجود در بانکهای اطلاعاتی هستند، به ناچار باید ماجول هایی را که چنین امکاناتی در اختیارشان قرار می دهند برروی کامپیوترشان نصب کنند، حال آنکه PHP ذاتاً مجموعه کاملی از بانکهای اطلاعاتی مطرح را مورد پشتیبانی قرار میدهد.( البته برای کسب این پشتیبانی کامل لازم است تا هنگام نصب PHPاطلاعاتی به قرار زیر است:dbase,dbm,filepro,hyperwave,in formix?? Interbase,Microsoft sql server, msql, my sql, odbc ,oracle, oracle8,postgre sql,Sybase.
به طور خلاصه، به دلیل phpدر اصل برای برنامه نویسان وب طارحی شده است، تقریبا به طور هر نوع مساله ای که برنامه نویسان وب با ان مواجه می شوند، از مدیریت جلسات کاربران گرفته تا بهره گیری از اسناد xml به مجموعه ای از توابع و ابزارهای مفید مجهز شده است .
به چنین امکانات و تسهیلاتی در مورد phpبه احتمال قوی، این سوال را در ذهن خواننده دبه وجود می اورد که آیا این امکانات به بهای از دست دادن کارایی به دست آمده اند؟ پاسخ منفی است.
سرعت اجرای برنامه php بر روی وب سرور به طور شگفت آوری بالاست .آن چنان که سرعت اجرایی آن برنامه های cgl نوشته شده با زبان perl نیز بیشتر است.
اولین ویرایش کتاب حاضر مقارن با زمانی بود که php4هنوز مراحل پایانی توسع خود خود را طی میکرد .در حال حاظر این زبان محبوب مراحل تکاملی خود را با موفقیت پشت سر گذاشته و به عنوان محیطی امن و پایداد در دنیای برنامه نویسی وب به رشد خود ادامه می دهد ضمن اینکه روز به روز نیز بر شمارگان برنامه نویسانی که از آن استفاده می کنند افزوده می شود.
ویژگی های جدید در php4
Php4 چندین ویژگی جدید معرفی کرده است که کار برنامه نویسان وب را از چندین جهت ساده تر و جالب توجه تر می کند. در زیر به چند نمونه از این ویژگی ها اشاره می کنیم:
*عبارت foreach جدید که مشابه نمونه خود در زبان perlاست، پیش از گذشته کار پردازش عناصر ارایه ها را ساده تر کرده است ما در بسیاری از مثال های مربوط به ارایه ها در این کتاب از این عبارت جدید استفاده خواهیم کرد در رابطه با پردازش ارایه ها نیز هم اکنون php4 توابعی را معرفی کرده که کار بر روی ارایه ها را به اسانی ممکن می سازد
*نوع Boolean به نوع دادهای جدید معرفی شده است.
* یکی از ویژگی های قابل توجه php3 قابلیت نام گذاری عناصر فرم ها بود، به گونه ای که برنامه نویس می توانست ان عناصر را جز یک ارایه فرض کند. این بدان معنی است که برنامه نویس قادر بود تا اسامی و مقادیر عناصر مذکور در قالب یک ارایه در اختیار برنامه قرار قرار دهد. این ویژگی هم اکنون در php4به ارایه های چند بعدی توسعه و تعمیم پیدا کرده است.
* پشتیبانی از مشخصه های شی گرایی و برنامه نویسی شی گرا همواره یکی از نقاط قوت زبان برنامه نویسیphp بوده است .این ویژگی نیز در php4 به طور قابل ملاحظه ای توسعه پیدا کرده است. برای نمونه در حال حاظر فراخوانی متدهای رونویسی شده کلاس پدر در درون کلاس فرزند، به سادگی امکان پذیر می باشد.
* php4به واسط بهره گیری از کوکی ها و رشته های پرس و جو امکان پشتیبانی از جلسات کاربران را در اختیار برنامه نویسان قرار داده است. برنامه نویسان اکنون می توانند با ثبت متغییر های مربوط به جلسات مختلف به هنگام ایجاد جلسات، امکان دستیابی به مقادیر انها در جلسات اینده را از طریق اسامی این متغییرها به راحتی فراهم کنند.
* php4شامل عملگر مقایسه ای جدیدی با عنوان === است که مقایسه نوع داده دو متغییر را به خوبی مقایسه مقادیرشان ممکن می سازد.
*ارایه های انجمنی جدید در php4 که شامل متغییر های سرور و متغیرهای محیطی می باشند ، به همراه متغییری که اطلاعاتی را در مورد فایل های بار گذاری شده در خود ذخیره می کند امکانات جالب توجهی را در اختیار برنامه نویسان قرار داده است
|* پشتبانی ذاتی php4 ازgava وxml نکته بارز دیگری است که بدون شک به تعداد کاربران php خواهد افزود.
با وجود اینکه ویژگی های مذکور به همراه سایر ویژگی هایی که در اینجا ذکر نکردیم به طور قابل ملاحظه ای موجب بهبود در عملکرد زبان برنامه نویسی phpشده اند، شاید مهمترین تغییری که در php4صورت گرفته، بهبود عملکرد ان از نظر کارایی باشد که به واسطه تغییرات داده شده در کد منبع phpحاصل شده است.