صفحه شخصی تکتم وظیفه دوست احمدی

گزارش هفته چهارم

آشنایی با زبان برنامه نویسی PHP

 

پی اچ‌ پی(PHP) یکی از پر طرفدارترین زبان‌های پردازه نویسی  متن باز (Open Source) است که بیشتر برای طراحی برنامه‌های سمت سرور در وب سایت های پویا (Dynamic) مورد استفاده قرار می‌گیرد. PHPمخفف Hypertext Preprocessor(پیش‌پردازنده فرامتن) می‌‌باشد. PHPدر سال ۱۹۹۴ ایجاد شد. رسموس لردورف (Rasmus Lerdorf) ایجاد کننده اولیه آن بوده است ولی در طی زمان این زبان برنامه‌سازی، توسط سایر کارشناسان و برنامه‌نویسان تکمیل گردیده و به شکل کنونی آن درآمده‌است.

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 از ابتدا تا کنون

نسخه

نسخه /ویرایش جدید

تاریخ نشر

یادداشت ها

1.0

1.0.0

1995-06-08

این اولین نام کاربردیPHP بود.
(PHP Tools)Personal Home Page Tools

2.0

2.0.0

1996-04-16

توسط سریعترین و ساده ترین ابزار ایجاد شد.برای ایجاد کردن صفحات وب پویا..

3.0

3.0.0

1998-06-06

توسعه آن از یک نفر به چند نفر تغییر کرد.زیو سوراسکی و اندی گاتمنز دوباره اساس این نسخه را نوشتند.
rewrite the base for this version.

4.0

4.0.0

2000-05-22

سیستم تجزیه / اجرا در دو مرحله تحت عنوان ماشینZend اضافه شد.

4.1.0

2001-12-10

( $_GET, $_POST, $_SESSION)
متغیر های بسیار خوبی معرفی شدند.

4.2.0

2002-04-22

متغیر های بدون استفاده با پیش فرض.holes in applications.

4.3.0

2002-12-27

علاوه برCLI٬CGI نیز معرفی شد.

4.4.0

2005-07-11

صفحات مهمی برای اسکریپتphpsize وconfig-php اضافه شد.

4.4.8

2008-01-03

چند پیشرفت ایمنی.منتشر شدنPHP 4.

4.4.9

2008-08-07

پیشرفت بیشتر و انتشار نسخهPHP 4.4.

5.0

5.0.0

2004-07-13

ماشین 2zend با امکان مدل شی گرایی.

5.2.0

2006-11-02

گسترش فیلتر با پیش فرض.

6.0.0

نشر آینده

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

 

کاربرد:

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

 

میزان بهینه سازی:
همزمان با اسکریپت کردن زبانها٬ساختار الگو گونه براى نمايش ترتيب حوادث 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تعیین نمی شوند.حدود رایج و مشترک است که به ترتیب بسته کردن و باز کردن می باشد. علائم کوتاه می تواند برای شروع کد به کار روند: =?> یا ?> و علامتی که برای پایان کد به کار می رود، یا %> کمتر مورد استفاده قرا می گیرند. به همین خاطر استفاده ازعلائم کوتاه و 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)به منظور حل مسائل استاندارد و دسترسی به داده‌های موثر و کلاسها به کار می‌رود. نسخه 5.2 و قدیمی تر : توابع بهترین توابع نیستند و تنها می‌توانند با نامشان صدا زده شوند.توابع تعریف شده توسط کاربر می‌توانند بیرون از نمونه اولیه ایجاد شوند.توابع می‌توانند در درون بلوک‌ها تعریف شوند.توابع فراخوانی شده باید از پرانتز استفاده کنند.به جز آرگومان zeroتوابع سازنده کلاس با اپراتور newفراخوانده می‌شوند.در اینجا پرانتز‌ها اختیاری هستند.PHPتوابع بی نام را که توسط دستور function_ creatایجاد می‌شوند را هم پشتیبانی می‌کند.اگر چه درست نیستند چون توابع بی نام از اسم بر خوردار نیستند و توابع تنها میتوانند توسط نامشان صدا زده شوند. نسخه 5.3 وجدیدتر: PHPاز توابع درجه اول و توابع بی نام حمایت می‌کند که توسط ساختار زیر پشتیبانی می‌شوند:

function getAdder($x) {     Return function ($y) use ($x) {         return $x + $y;     }; }

در نمونه فوق تابع ( )getAdderیک پارامتر x$ ایجاد می‌کند که آرگومان y$ اضافی را می‌گیرد و آنرا به صدا زننده بر می‌گرداند. اشیاء: برنامه نویسی شی گرا به 4 PHPاضافه شد. اشیا در 5 PHPبه طور کامل دوباره نوشته می شود.در نسخه قبلی PHPاشیا مانند تایپ های اولیه به کار برده می شوند.اشکال این روش این بود که وقتی یک متغیر تعریف می شود تمام اشیا کپی می شوند.در روش جدید اشیا با handleبازگشت داده می شوند نه با مقدار. 5 PHPمتغیر های عضو خصوصی و حفاظت شده تعریف می کند.همچنین یک روش اساندارد برای معرفی سازنده و مخرب همانند زبان برنامه سازی ++Cتعریف می کند. Interfraceهای خاصی وجود دارد که به اشیا اجازه می دهد بر روی زمان اجرا اثر بگذارد.اگر توسعه دهنده یک کپی از یک شی با استفاده از کلمه محفوظ cloneایجاد کند ماشین Zendآنرا بررسی خواهد کرد که آیا روشی برای آن تعریف شده یا نه.اگر نشده بود یک Cloneپیش فرض را صدا خواهد زد که ویژگی های آن شی را کپی می کند.اگر تعریف شده بود برای ویژگی های لازم اشیا ایجاد شده معتبر است.برای سادگی ماشین تابعی را تولید می کند که مشخصات شی مرجع را وارد می کند که برنامه نویس می تواند با یک مقدار مشابه شی مرجع آغاز به کار کند و تنها ویژگی هایی را که نیاز دارد تغییر دهد.

روش نصب

PHPشما برای کار با PHPنیاز به یک سرور مجازی دارید که می توانید از IISیا Apacheاستفاده کنید که ما آپاچی را توصیه می کنیم. همچنین به یک پایگاه داده نیاز دارید که برای این کار mysqlبهترین گزینه است.

شما می توانید با نصب Wampserverبه راحتی همه این گزینه ها را یکجا داشته باشید. Wampserverیک نرم افزار رایگان است که با نصب Apache، PHP، MySqlو PHP My Adminشما را از نصب تک تک این برنامه ها آسوده می کند. Wampserverرا می توانید دانلود کنید.

آسانی

به گفته اکثر برنامه نویسان وب، PHPیک زبان تحت وب ساده به شمار می رود، زیرا نیاز به یادگیری هیچ پیش نیازی نیست، همچنین PHP، به زبان های دیگری وابسته نیست.اغلب دستورات آن مشابه زبانهای محاوره ای بوده و یادگیری آن ساده است.

[ 0 نظر ]
صفحه اصلی
پست الکترونیک
can't open file