صفحه اصلیدرباره ماخدماتفن آوري هانمونه كارهامشتریانمقالاتتماس با ما
 
 
گروه نرم افزاري وبيليكس > مقالات > مقايسه اي بين PHP و CGI
مقايسه اي بين PHP و CGI
پي.اچ.پي (PHP)

PHP يك زبان اسكريپت نويسي تحت سرور ميباشد كه ميتواند با اضافه شدن به نرم افزارهاي سروري مانند Apache امكان ايجاد صفحات مختلف با توجه به شرايط خاص را در هر لحظه فراهم بياورد. شما ميتوانيد اين زبان را در شرايط و مواردي كه قبلا براي آنها از زبان Perl استفاده ميكرده ايد مورد استفاده قرار دهيد. بواسطه ازدياد تعداد سرورهايي كه از زبان PHP پشتيباني ميكنند، اين زبان، به يك زبان رايج براي ايجاد صفحات وب تبديل شده است. براي افرادي كه تاكنون بصورت پراكنده در ارتباط با اين زبان مطالبي را شنيده اند اما به صورت كامل با اين زبان آشنايي ندارند، اين مطلب سعي دارد كه آنها را بيشتر با اين زبان آشنا كرده و تا حدودي نيز به مقايسه اين زبان با برنامه نويسي CGI با استفاده از زبان Perl بپردازد.

بخش اول: خصوصيات ساختاري
اگر شما با اطلاع از نحوه برنامه نويسي به زبانهاي C يا C++ يا Perl يا Java و يا Javascript ميخواهيد اقدام به يادگيري زبان PHP نماييد، با توجه به شباهتهاي زياد بين اين زبان و زبانهاي ياد شده اين كار بسيار راحت خواهد بود و در واقع شما ميتوانيد بسرعت برنامه نويسي به اين زبان براي رفع نيازهاي خود را آغاز نماييد.
براي مثال اين زبان براي ايجاد متغيرها دقيقا از شيوه موجود در زبان Perl استفاده مينمايد كه متغيرهاي آن همواره با علامت $ آغاز شده و ميتوانند اطلاعات مختلفي را در خود نگهداري نمايند. براي مثال متغير variable$ ميتواند اطلاعاتي از نوع رشته هاي كاراكتري (String) و يا اعداد (به فرمتهاي مختلف) و ... را شامل شود و چنانچه شما اين متغير را از نوع متغير عددي در نظر بگيريد به سادگي ميتوانيد مقدار متغير مورد نظر خود را با استفاده از يكي دستورات زير به اندازه يك واحد افزايش دهيد.

 

$variable++;
$variable += 1;
$variable = $variable + 1;

 

با توجه به آنچه گفته شد ميتوانيد به راحتي به شباهت بسيار زياد اين زبان برنامه نويسي به زبان Perl پي ببريد.

بخش دوم: امكانات
بر خلاف زبان برنامه نويسي Perl كه موارد استفاده بسيار گوناگوني دارد و فقط براي ايجاد صفحات وب طراحي نشده است، زبان PHP به صورت يك زبان كاملا اختصاصي براي ايجاد اين صفحات نوشته شده است و دقيقا به همين دليل، زبان PHP از امكانات بسيار زيادي پستيباني ميكند كه شما براي استفاده از آنها در زبان Perl مجبور خواهيد بود كه خودتان اقدام به نوشتن كدهاي مورد نياز خود نماييد. براي مثال در صورتي كه شما بخواهيد اطلاعات ثبت شده در يك فرم در سايت خودتان را به آدرس پست الكترونيك خودتان ارسال نماييد، در زبان Perl شما بايد دستوراتي مانند زير را بنويسيد.

 

open ( MAIL,"|/usr/sbin/sendmail -t");
print MAIL "To: myself@mydomain.com" ;
print MAIL "From: visitor@hisdomain.com" ;
print MAIL "Subject: Comments from Web Form" ;
print MAIL $mainmessage ;
close ( MAIL ) ;

 

اما براي انجام همينكار در زبان PHP ميتوانيد به راحتي و با استفاده از دستور mail كه در اين زبان وجود دارد اين كار را انجام دهيد.

 

mail ( "myself@mydomain.com", "Comments from Web Form", $mainmessage, "From: visitor@hisdomain.com" );

 

همانطور كه متوجه شديد اين كار در زبان PHP بسيار ساده تر انجام ميشود و در واقع به دليل اينكه اين زبان به صورت اختصاصي براي ايجاد صفحات وب نوشته شده است، بسياري از امكانات مورد نياز برنامه نويسان سايتهاي اينترنتي در آن گنجانده شده است.
يك مثال ديگر در اين ارتباط ميتواند مديريت اطلاعات ثبت شده توسط بازديدكنندگان در فرمهاي موجود در سايتها، پس از تاييد اطلاعات فرم و ارسال آنها باشد. براي مثال فرض كنيد شما فيلدي با مشخصات زير را در يك صفحه از سايت خودتان ثبت نموده ايد.

 

<input name="dateofbirth" type="text" />

 

حال براي مديريت اطلاعات اين ثبت شده در اين فرم، با استفاده از متغير dateofbirth$ و يا دو متغير خاص تعريف شده توسط زبان PHP به عنوان GET_$ و يا POST_$ ميتوانيد به راحتي به آنچه ميخواهيد دسترسي داشته باشيد.
همچنين دسترسي به امكانات مربوط به بانكهاي اطلاعاتي نيز در زبان PHP بسيار ساده است و در واقع امكانات مربوط به بانكهاي اطلاعاتي مانند MySQL ، MSQL ، Dbase ، Oracle ، InterBase و ... يا به صورت داخلي (Built-in) در اين زبان وجود دارد و يا به راحتي با استفاده از ماجولهاي اضافي نوشته شده قابل دسترسي ميباشند.
مواردي كه گفته شد در واقع گوشه كوچكي از توانايي ها و امكاناتي است كه PHP در اختيار برنامه نويسان سايتهاي اينترنتي قرار ميدهد و صحبت در مورد تمام اين امكانات در اين مطلب غير ممكن ميباشد. اما ذكر اين نكته الزامي است كه – همانطور كه قبلا گفته شد – زبان PHP به دليل آنكه به صورت اختصاصي براي ايجاد صفحات وب نوشته شده است، بسياري از امكاناتي را كه برنامه نويسان احتياج دارند را به صورت كاملا داخلي پشتيباني مينمايد و اين موضوع باعث راحت تر شدن برنامه نويسي وب با استفاده از اين زبان شده است.

بخش سوم: ايجاد صفحات
به صورت كلي خروجي تمام آنچه شما به عنوان دستورات PHP در يك صفحه وب مينويسيد، پس از بررسي و تفسير توسط مفسر اين زبان به صورت خروجي نهايي براي Browser شخص بازديدكننده ارسال خواهد شد. براي مثال به كدهاي زير توجه نماييد.

 

<html>
<head><title>My First PHP Script </title></head>
<body>
<h1>My First PHP Script </h1><br>
Welcome, Internet user from IP address <?php echo $REMOTE_ADDR ?>. Hope you like my first PHP page.
</body>
</html>

 

كدهاي نوشته شده بجر بخشي كه در ميان دو عبارت قرار دارد كاملا به زبان آشناي HTML نوشته شده اند. اما بخشي كه در بين دو عبارت ياد شده قرار دارد در واقع دستوارتي است كه به زبان PHP نوشته شده اند. در اين مثال اين دستورات باعث نمايش IP شخص بازديدكننده در صفحه خواهد شد. (بديهي است كه به دليل متفاوت بودن IP بازديدكنندگان مختلف، اين صفخه براي هر بازديدكننده يك IP خاص را نمايش خواهد داد.) اين كار به راحتي با استفاده از دستور echo انجام ميشود كه وظيفه آن نوشتن خروجي هاي PHP بر روي صفحه ميباشد. دستورات ديگري نيز براي نوشتن خروجي ها در صفحات در اين زبان وجود دارد كه البته ميتوان گفت echo متداولترين و راحت ترين گزينه است. همچنين در دستورات نوشته شده عبارتREMOTE_ADDR$ - با توجه به علامت $ در ابتداي آن – يك متغير است كه مقدار IP بازديدكننده را در خود نگهداري مينمايد و اين متغير – به همراه تعداد زياد ديگري از متغيرها – بوسيله اين زبان ايجاد ميشوند كه ميتوانند كاربرد زيادي در هنگام ايجاد صفحات وب داشته باشند. بنابر آنچه گفته شد ميتوان نتيجه گرفت كه به راحتي و با استفاده از دستور echo ميتوان مقدار يك متغير – و يا خروجي يك تابع و ... – را در هر كجاي صفحه وب كه مدنظر باشد نوشت. اين يكي از ساده ترين راههاي موجود در اين زبان براي ايجاد صفحات ميباشد كه البته راه هاي متفاوت و تا حدودي پيچيده تر هم در اين ارتباط وجود دارد.

بخش چهارم: بررسي اشكالات در PHP و Perl
در هنگام بررسي كدهاي نوشته شده به صورت online در زبان PHP و يا Perl، شما به راحتي ميتوانيد به برتري PHP نسبت به Perl پي ببريد. به صورت معمول در هنگام ايجاد خطا در كدهاي Perl شما با پيغام هاي خطاي نامفهومي مانند 500 Internal Server Error مواجه ميشويد كه كمك زيادي به فهميدن دليل ايجاد مشكل و رفع آن نخواهد كرد. اما در زبان PHP شما علاوه بر دريافت پيام خطا كه در بسياري موارد شامل دليل ايجاد خطا نيز ميباشد، شماره خطي را نيز كه خطا در آن اتفاق افتاده مشاهده خواهيد نمود كه در اين صورت بررسي اشكال و رفع آن بسيار راحت تر خواهد بود. البته در زبان PHP نيز در مواردي شما با پيامهاي خطاي نامفهومي مانند parse error مواجه ميشويد كه در هر حال در اين حالتها نيز شماره خط محل وقوع خطا ميتواند كمك زيادي به شما براي بررسي و رفع خطاهاي ايجاد شده نمايد.
در حالت offline برتري نسبي با زبان Perl ميباشد، در اين حالت معمولا پيامهاي خطاي ايجاد شده توسط مفسر زبان Perl بسيار بهتر از PHP ميباشد و معمولا در اين حالت مفسر زبان PHP پيام خطاي نامفهوم parse error را ايجاد مينمايد كه نميتواند كمك زيادي به شما براي بررسي دلايل ايجاد خطا و رفع آن نمايد.


بخش پنجم: كدهاي آماده
بدليل محبوبيت PHP و همچنين تعداد زياد سايتهايي كه در آنها ميتوانيد به بحث و تبادل نظر در مورد اين زبان و مشكلات خودتان بپردازيد و همچنين امكان دريافت نمونه كدهاي آماده نوشته شده به اين زبان در اينترنت، استفاده از PHP ميتوانيد تا حد زيادي از بازنويسي تمام بخشهاي مربوط به يك سايت جلوگيري نمايد و كافيست تا با بررسي چند سايت و كدهاي ثبت شده در آنها در هر مورد، نمونه كدي كه دقيقا مطابق با نيازهاي شما نوشته شده است را پيدا كنيد و از آن استفاده نماييد كه البته با اين كار ميتواند مقدار زيادي در زمان خود صرفه جويي نماييد. تعدادي از سايتهاي مفيد در اين ارتباط را ميتوانيد در ليست زير مشاهده نماييد.
PHPBuilder.com
DevShed PHP Tutorials
TheScripts.com PHP Tutorials
WeberDev.com

بخش ششم: نكات مهم
در صورتي كه مايل باشيد شما هم به جمع برنامه نويساني كه از PHP براي ايجاد سايتها استفاده مينمايند بپيونديد بايد موراد مهمي را كه در ادامه به آنها اشاره خواهد شد مد نظر داشته باشيد چرا كه در هر صورت اين موراد ميتوانند بر روي تصميم نهايي شما تاثير داشته باشند. هرچند كه اين نكته را هم نبايد فراموش كرد كه در نهايت اين زبان اگر بهترين گزينه نباشد، بدون شك يكي از بهترين گزينه هاي موجود ميباشد.

الف) به صورت كلي امروزه – با وجود ازدياد روزافزون سرورهايي كه از PHP پشتيباني مينمايند – تعداد سرورهايي كه امكان استفاده از زبان Perl را در اختيار برنامه نويسان قرار ميدهند بيشتر از سرورهايي است كه از PHP پشتيباني ميكنند. اين مورد مخصوصا در ارتباط با سرورهاي رايگان، نمود بيشتري پيدا ميكند و در صورتي كه بخواهيم سرورهاي رايگاني را كه امكانات PHP موجود بر روي آنها كامل نيست و بعضي از اين امكانات بر روي آنها قابل دسترسي نميباشند را در نظر نگيريم، تعداد سرورهاي رايگاني كه از امكانات PHP به صورت كامل پشتيباني مينمايند شايد به زحمت از ده مورد بيشتر باشد حال آنكه در مورد Perl اين مورد بسيار بيشتر است. و براي مثال چنانچه شما مجبور به تغيير سرور – از يك سرور رايگان به يك سرور رايگان ديگر – باشيد اين موضوع ميتواند مشكلات زيادي را براي شما ايجاد نمايد. اين مشكل در ارتباط با سرورهايي كه براي اجاره فضا بر روي آنها مجبور به پرداخت هزينه هستيد (سرورهاي تجاري) كمتر ميباشد و در حال حاضر سرورهاي زيادي ميتوانند اين امكانات را در اختيار شما قرار دهند. متاسفانه بعضي از سرورهاي تجاري در ايران اقدام به بستن بعضي از امكانات PHP (مانند امكان استفاده از دستور mail براي ارسال پست الكترونيك) كرده اند و يا امكانات PHP موجود بر روي آنها در حالت Safe Mode اجرا ميشود كه در هنگام خريد فضا از آنها بايد به اين موارد نيز توجه شود.

ب) در حالت كلي در تمامي زبانهاي برنامه نويسي سمت سرور (server Side) و از جمله PHP و Perl براي انجام راحت تر برنامه نويسي و رفع اشكال شما بايد نرم افزارهاي سرور و همچنين پشتباني PHP و Perl را بر روي كامپيوتر خود نصب نماييد تا به اين وسيله بتوانيد راحت تر اين كار را انجام دهيد و در غير اين صورت شما مجبور خواهيد بود كه مدت زمان زيادي را در حالت online صرف اين كار نماييد كه اين حالت هزينه و زمان زيادي را تلف خواهد كرد. نصب نرم افزار سرور و همينطور ساير نرم افزارهاي مورد نياز براي دسترسي كامل به امكانات Perl و PHP ميتواند در ابتدا كمي سخت به نظر بيايد اما با استفاده از راهنماهاي موجود بر روي اينترنت و يا نرم افزارهاي رايگاني كه يك سرور را با امكانات كامل بر روي يك سيستم نصب ميكنند ميتوانيد اين كار را به راحتي انجام دهيد. البته در اين ميان ما توصيه ميكنيم كه هر امكان (مانند سرور HTTP و PHP و سرور MAIL و سرور FTP و ...) را به صورت جداگانه خودتان نصب نماييد و به دليل اشكالاتي كه معمولا در نرم افزارهاي آماده كه همه اين امكانات را با هم نصب مينمايند، وجود دارد از استفاده از آنها تا حد امكان صرف نظر نماييد.


در حالت كلي زبانهاي زيادي براي ايجاد صفحات وب وجود دارد اما در اين ميان بهترين انتخاب، انتخابي است كه بتواند تمامي امكانات مورد نياز براي ايجاد صفحات را در اختيار شما قرار دهد و ميتوانيد اطمينان داشته باشيد كه با توجه به آنچه گفته شد و همچنين ذكر مجدد اين نكته كه PHP صرفا براي ايجاد صفحات وب نوشته شده است و به همين دليل هم از امكانات زيادي در اين ارتباط برخوردار است، زبان PHP يكي از بهترين ها در اين مورد ميباشد.

 



 
 
© 2012 - WEBILIX websolutions