PHP چیست؟

مخفف Hypertext Preprocessor
PHP چیست؟

سه شنبه 18 دي 1397

PHP چیست؟

پی اچ پی یه زبان برنامه نویسی توسعه یافته برای طراحی وب است که مخفف Hypertext Preprocessor به معنای پیش پردازنده ی ابرمتن است اما در ابتدا php از عبارت  personal homepageبه معنای صفحه خانگی شخصی گرفته شده بود. از پی اچ پی میشه به عنوان زبان برنامه نویسی عمومی هم استفاده کرد. تا دی 1391 روی 244 میلیون وب سایت حدود 2 میلیون سرور نصب شده؛ میشه گفت حدود سه چهارم وب سایت های دنیا ازش استفاده میکنن؛ سایتهای شناخته شده ای مثل فیسبوک، وردپرس، جوملا، یاهو و ویکی پدیا از این زبان استفاده کردن. راسموس لردوف این زبان رو در سال 1373 ساخته است که در حال حاضر توسط گروه پی اچ پی در حال توسعه است.

پی اچ پی یه زبان قدرتمند برای طراحی وب سایتهای پویا است یا میتونه سرویس خاصی رو پیاده سازی کند. این زبان برنامه نویسی میتونه با HTML ادغام بشه. پی اچ پی در حقیقت یه زبان اسکریپت نویسی رایگان و متن باز است که روی سرور یا مبتنی بر اون اجرا میشه. یعنی زمانی که سرور درخواست کاربر رو دریافت کرده از طریق یه زبان اسکریپت نویسی در سمت سرور  اون رو پردازش میکنه و عملیات متفاوتی بر اساس اون درخواست انجام میده و در آخر یه صفحه ی پویا در اختیار کاربر قرار میده. به طوری که مرورگر کاربر پاسخی که کدهای صفحه در اون قرار داره رو از سرور دریافت میکنه که با استفاده از موتور رندرینگ خودش صفحه رو به گونه ای خوانا در اختیار کاربر میگذاره.

کدهای پی اچ پی به وسیله ی یه وب سرور که این نرم افزار روی اون نصب باشه تفسیر میشن. دستورهای این زبان به صورت مستقیم میتونن درون کدهای html قرار بگیرن. نسخه ی 4.3 به بعد زبان پی اچ پی قابلیت پشتیبانی از رابط خط فرمان یا command-line interface رو دارن. این قابلیت برای ایجاد نرم افزارهای غیر وب یا نرم افزارهای با واسط کاربری میتونه مورد استفاده قرار بگیره.

پی اچ پی در حقیقت یه نرم افزار آزاد است که با مجوز پی اچ پی منتشر شده. البته این مجوز به خاطر محدودیت داشتن در استفاده از عنوان پی اچ پی با مجوز همگانی گنو یا GPL سازگار نیست. پی اچ پی رو میشه روی اکثر سرورها نصب کرد همچنین روی اکثر سیستم عاملها و پلتفرمها قابلیت نصب داره.

زبان پی اچ پی چندین تابع پایه و افزونه داره که به خوبی روی وب سایت پی اچ پی مستندسازی شدن. نام گذاری توابع پایه از قوانین خاصی پیروی نمیکنن. این زبان تا حالا توابعی برای پشتیبانی رشته های اجرایی ارائه نکرده اما از سیستمهای چندپردازنده ی پازیکس پشتیبانی می کنن.

توابع در نسخه ی 5.2 و نسخه های قبل از آن دست اول نبوده و فقط با اسمشون به شکل مستقیم و غیر مستقیم قابل فراخوانی هستن. توابع پی اچ پی بدون نوشتن نمونه ی اولیه تعریف میشن. پی اچ پی قابلیت تعریف توابع بدون نام رو نداره اما میشه با قرار دادن نام یه تابع در متغیر، اون رو به صورت غیر مستقیم فراخوانی کرد.

قابلیت برنامه نویسی شیء گرایی در نسخه ی 3 به شکل ابتدایی به زبان پی اچ پی اضافه شد و در نسخه های بعدی بهبود یافت. در نسخه های پیشین، با اشیاء مثل یه داده برخورد میشد به این شکل که کل محتویاتش در هر بار مقداردهی یا ارسالش به یه تابع در یک فضای جدید کپی میشد. اما در نسخه ی 5 تعییراتی صورت گرفت و نحوه ی مدیریت اشیاء عوض شد. علاوه بر این، مفاهیم جدیدی مثل متغیرهای عمومی و شخصی و کلاسهای نهایی و انتزاعی و خیلی موارد دیگه معرفی شدند. همینطور پی اچ پی 5 قابلیت استفاده از اینترفیسها رو هم معرفی کرد و از پیاده سازی چند اینترفیس در یک کلاس پشتیبانی کرد.

برخی از مشکلات امنیتی که در سال 91 توسط پایگاه داده امنیتی ملی منتشر شد مربوط به زبان پی اچ پی بود. مشکلات تکنیکی که در خود برنامه وجود داره خیلی کمه و این مشکلات اغلب توسط برنامه نویسان به علت عدم استفاده از روشهای مناسب ایجاد میشه. برای رفع این اشتباهات برنامه نویسان، قابلیتهای بسیاری برای تشخیص خطاهای امنیتی پیشنهاد شده که هنوز به تایید گروه نرسیده است.

 

پی اچ پی به دلیل رایگان بودنش برای طراحی وب ارجحیت داره و برای طراحان وب سراسر دنیا مورد استفاده قرار می گیره. PHP بهترین گزینه برای طراحی وب ارزان است. گروه PHP یک منبع کد کامل رو فراهم می کنه که به کاربران اجازه می ده تا در صورت نیاز، سفارشی سازی کنند و طراحی وب رو توسعه بدن. پی اچ پی به راحتی با هر سیستم عامل از جمله Lennox، Mac، OSX و لینوکس کار می کنه. پی اچ پی همچنین بسیاری از سرورهای وب در حال استفاده رو از جمله Apache و IIS پشتیبانی می کنه.

 

همانطور که گفتیم زبان برنامه نویسی پی اچ پی در سمت سرور است، نیازی به نصب نداره و به فضای پردازنده کمتری نیاز داره. خب این موضوع به این معنیه که روی سرعت سیستم شما تاثیر نمی گذاره. انعطاف پذیری پی اچ پی، مقیاس پذیری و قابلیت استفاده در یک طراحی کاربر پسند، باعث شده که یکی از متنوع ترین زبان ها برای ایجاد صفحات وب باشه. یکی از حسنهای پی اچ پی اینه که بسیار برای استفاده راحته و در هر سطح مهارتی که هستید چه تازه وارد باشید چه یه برنامه نویس حرفه ای میتونید ازش استفاده کنید. با استفاده از پی اچ پی می تونید در عرض چند ساعت یه اسکریپت ساده بنویسید.

 پی اچ پی یه زبان پردازه نویسی یا اسکریپت نویسی در سمت سرور است. شاید به خودتون بگید اصلا این زبان اسکریپت نویسی چی هست؟

 زبان اسکریپت نویسی یه نوع زبان برنامه نویسی است که برای نوشتن پردازه ها استفاده میشه. پردازه ها یا اسکریپتها برنامه های کوچکی هستن که میشه از طریق اونها بعضی وظایف تکراری و پراستفاده یا یک وظیفه طولانی رو به طور خودکار انجام داد. اکثرا این‌گونه وظایف مربوط به واژه‌پردازی در متن‌ها می‌شن.

پردازه ها اجازه ی کنترل بعضی از کاربردهای نرم‌افزار رو به برنامه‌نویس می‌ده اما تعدادی از فرمان‌ها و امکانات زبان‌های بزرگ در این زبان‌ها حذف شدن. مثلاً امکان نوشتن فایل یا پاک کردن فایل‌ها روی سیستم کاربر مثل زبان‌های برنامه‌نویسی وجود نداره. جاوا اسکریپت، پرل و پایتون مثالهای این گروه هستن.

زبان برنامه نویسی با اسکریپت نویسی یه سری تفاوتهایی باهم دارن. زبان برنامه نویسی تمام ویژگی های موردنیاز برای توسعه ی کامل اپلیکیشن رو داره، اما زبان اسکریپت نویسی بیشتر برای کارهای تکراری و روتین استفاده میشه. کدها در زبان برنامه نویسی قبل از اجرا کامپایل میشه، اما کدها در زبان اسکریپت نویسی معمولا بدون کامپایل اجرا میشن. زبان برنامه نویسی نیازی به قرار گرفتن در یه زبان دیگه نداره، اما زبان اسکریپ نویسی اغلب در محیطهای نرم افزاری دیگه قرار میگیره.

 

محتوای پویای پی اچ پی برای وب سرورها به کاربران این امکان رو میده تا روی زبان برنامه نویسی سمت سرور تمرکز کنن. پی اچ پی یک قابلیت رابط خط فرمان رو توسعه داده است که می تونه در برنامه های گرافیکی مستقل مورد استفاده قرار بگیره. کاربران پی اچ پی به خروجی HTML محدود نمی شن اونها می تونن به راحتی از هر متن مانند XHTML یا دیگر فرمت فایل XML استفاده کنن. کاربران پی اچ پی همچنین قادر به ضمیمه انواع دیگری از تصاویر مانند فایل های PDF و فیلم های فلش هستند؛ که این می تونه به صورت خودکار در یک سیستم به جای نیاز به چاپ تولید و ذخیره بشه، به این صورت که برای محتوای پویای کاربر یک مخزن سمت سرور ایجاد بشه.

با استفاده از پی اچ پی، حفظ یه وب سایت با موتور جستجوی خوب راحته و از جست و جوی پیچیده ی وب که باعث اشتباه موتورهای جستجو میشه، جلوگیری می کنه. این حالت باعث بالا بردن سئوی سایت شما و رسیدن به اهداف بازاریابی میشه. پی اچ پی به بهینه سازی سرعت صفحات وب از زمان پردازش در بخش سرور کمک میکنه. جاسازی پی اچ پی در یک صفحه خیلی راحته یا حتی میتونین یه صفحه ی اضافه ایجاد کنید. این به دیده شدن همه ی اسکریپت ها در یک صفحه ی وب کمک میکنه، بر عکس جاوا اسکریپت که اگه غیرفعال باشه غیر قابل مشاهده است.

 

زبان نحوی پی اچ پی:

یک فایل پی اچ پی همچنین می تونه حاوی تگهایی مانند HTML و اسکریپت سمت کاربر مانند جاوا اسکریپت باشه.

·        هنگام یادگیری زبان پی اچ پی،HTML یک مزیت اضافی است. شما حتی می تونید پی اچ پی رو بدون دونستن HTML یاد بگیرید، اما توصیه می شه حداقل اصول HTML رو بدونید.

 

 

·        سیستم های مدیریت پایگاه داده(DBMS) برای برنامه های مبتنی بر پایگاه داده.

 

·        برای موضوعات پیشرفته تر مانند برنامه های تعاملی و خدمات وب، به جاوا اسکریپت و XML نیاز پیدا می کنید.

 

 

فرمت فایل پی اچ پی:

برای اینکه سرور، فایل های پی اچ پی و اسکریپتها رو شناسایی کنه پسوند فایل و تگها رو باید با فرمت ".php" ذخیره کنیم. پسوند فایلهای قدیمی ترپی اچ پیشامل:

 

·        .phtml

·        .php3

·        .php4

·        .php5

·        phps.

 

شما میتونید فایلهای پی اچ پی بدون تگ html بسازید که به این فایلها پی اچ پی محض میگن.

سرور، کد PHP رو تفسیر می کنه و نتایج رو به عنوان کد HTML به مرورگرهای وب منتقل می کنه.

برای اینکه سرور کد پی اچ پی رو از کد HTMLتشخیص بده، همیشه باید کد پی اچ پی رو در تگهای PHP قرار بدید.

زبان پی اچ پی به کوچک و بزرگ بودن حروف حساسه است.

تگ های پی اچ پی خود به حروف حساس نیستن، اما شدیدا توصیه می شه که از حروف کوچک استفاده کنید.

 

چه کارهایی می تونید با PHP انجام بدید:

کارهای زیادی هست که می تونید با PHP انجام بدید مثلا:

 

·        می تونید صفحات و فایل های پویا تولید کنید.

 

·        می تونید فایل های خود رو بر روی سرور ایجاد کنید، باز کنید، بخونید و بنویسید و  همینطور ببندید.

 

·        شما می تونید داده ها رو از یک فرم وب مانند اطلاعات کاربر، ایمیل، اطلاعات کارت اعتباری و خیلی چیزهای دیگه جمع آوری کنید.

 

·        می تونید برای کاربران وب سایتتون ایمیل بفرستید.

 

·        می تونید برای دنبال کردن بازدید کننده ی وب سایتتون کوکی های سایت رو ارسال و دریافت کنید.

 

·        شما می تونید اطلاعات رو در پایگاه داده خود ذخیره، حذف و تغییر بدید.

 

·        می تونید دسترسی غیر مجاز به وب سایتتون رو محدود کنید.

 

·        شما می تونید داده ها رو برای انتقال ایمن از طریق اینترنت رمزگذاری کنید.

 

 

مزیتهای زبان پی اچ پی:

 

اگه شما با بقیه ی زبان های سمت سرور مانند ASP.NET یا JSP آشنا باشید، ممکنه بدونید که چه چیزیپی اچ پی رو از بقیه متمایز میکنه. انتخاب پی اچ پی نسبت به بقیه مزایای متعددی داره. برخی از آنها عبارتند از:

 

·        یادگیریآسان: یادگیری و استفاده ی پی اچ پی راحته. برای برنامه نویسان مبتدی که تازه شروع به توسعه وب کردن، پی اچ پی اغلب به عنوان بهترین و مناسب ترین انتخاب برای یادگیری در نظر گرفته می شه.

 

·        منبع باز: پی اچ پی یک پروژه منبع باز است.  زبان برنامه نویسی توسط جامعه ی جهانی توسعه دهندگان توسعه یافته و نگهداری می شه که منبع کد رو به صورت آزاد برای دانلود و استفاده در اختیارتون می گذاره. هیچ هزینه ای برای استفاده از پی اچ پی برای پروژه های فردی یا تجاری، از جمله به روز رسانی های آینده نیاز نیست.

 

 

·        قابلیت انتقال: پی اچ پی روی سیستم عامل های مختلف مانند مایکروسافت ویندوز، لینوکس، سیستم عامل مک، و غیره اجرا می شه و تقریبا با تمام سرورهای مورد استفاده امروز مانندApache، IIS و غیره سازگار است.

 

·        عملکرد سریع: اسکریپت های نوشته شده در پی اچ پی معمولا سریعتر از اونهایی که در زبان های اسکریپتی دیگر مانند ASP.NET یا JSP نوشته شده است اجرا می شن.

 

·        اجتماع گسترده: از آنجا که PHP توسط جامعه ی جهانی پشتیبانی میشه، پیدا کردن کمک یا مستندات برای پی اچ پی آنلاین بسیار آسان است.

 

 

نسخه های مختلف پی اچ پی:

تاکنون نسخه های زیادی از پی اچ پی منتشر شده که در زیر به بررسی اونها می پردازیم:

 

نسخه php

تاریخ انتشار

توضیحات

1.0

18/03/1374

این نسخه به صورت رسمی "Personal Home Page Tools" یا "PHP Tools" نامیده شد.

2.0

10/08/1376

 

3.0

16/03/1377

توسعه‌دهندگان به چند نفر افزایش یافتند. زیو سوراسکی و اندی گاتمنس این نسخه رو بازنویسی کردند.

4.0

02/03/1379

سیستم دومرحله‌ای تجزیه/اجرای پیشرفته به این نسخه اضافه شد.

4.1

19/09/1380

متغیرهای فوقِ سراسری(Superglobal) معرفی شدند.

4.2

02/02/1381

تنظیم register_globals به صورت پیش‌فرض غیرفعال شد. با این تغییر اطلاعاتی که از طریق شبکه ارسال می‌شدند، دیگر به طور مستقیم در محدوده متغیرهای فوق سراسری قرار نمی‌گرفتند. این نکته مشکلات امنیتی احتمالی بسیاری از نرم‌افزارها را برطرف کرد.

4.3

06/10/1381

رابط خط فرمان یا همان CLI به این نسخه اضافه شد.

4.4

20/04/1384

صفحات راهنما(man page) برای دستورات phpsize و config-php اضافه شد.

5.0

23/04/1383

موتور زِندzend motor)) نسخه ۲ معرفی شد.

5.1

03/09/1384

بهبود بازدهی با معرفی متغیرهای مترجم (Compiler Variables) در موتور جدید پی‌اچ‌پی. مدل PDO به عنوان یک رابط پایدار برای برقراری ارتباط با بانک‌های اطلاعاتی معرفی شد.

5.2

11/08/1385

افزونه فیلتر (Filter Extension) به صورت پیش‌فرض فعال شد. پشتیبانی از جی‌سن (JSON) افزوده شد.

5.3

09/04/1388

شتیبانی از namespace, late static binding، دستور jump (نسخهٔ ضعیف شدهٔ دستور Goto) و زباله جمع‌کن. پشتیبانی بهتر از سیستم‌عامل ویندوز. پشتیبانی از اس‌کیوال‌لایت نسخهٔ ۳. کتابخانهٔ Mysqlnd جایگزین کتابخانهٔ libmysql (که مسئول برقراری ارتباط با بانک‌اطلاعاتی مای‌اس‌کیوال بود) شد. افزونه fileinfo که کارایی بهتری در مورد MIMEها دارد، جایگزین افزونهٔ mime_magic شد. افزونهٔ بین‌الملل (Internationalization) اضافه شد و توابع ereg از دور خارج شدند.

5.4

11/12/1390

پشتیبانی از Trait. پشتیبانی از آرایه‌ها با فرمت کوتاه. سرور وب داخلی. بهبود کارایی و استفاده از حافظه به میزان کمتر.

5.5

30/03/1392

جنراتورها افزوده شدند(Generators). بهینه‌ساز زند+ (Zend Optimizer+) اضافه شد.

5.6

04/06/1393

قابلیت بازنویسی عملگرها (Operator Overloading). ایجاد تغییرات در GMP یا GNU Multiple Precision

6.0

عرضه نشده

نسخه رها شده‌ای از php

7.0

12/09/1394

معرفی نسخه سوم موتور زِند و بهبود کارایی، پشتیبانی از متغیرهای ۶۴ بیتی در ویندوز

7.1

08/1395

قابلیت بازگردانی نوع void توسط توابع

 

 

برای استفاده از پی اچ پی به چه چیزی نیاز دارید؟

برای استفاده و اجرای صفحات پی اچ پی باید سرور آپاچی ( Apache ) یا IIS رو روی کامپیوتر خود نصب کنید یا اینکه صفحه خود رو بر روی یک سرور که از پی اچ پی پشتیانی می کنه، اجرا نمایید.