TAHA
11-05-2009, 12:09 PM
كمتر كاربر اينترنت را میتوان يافت كه تاكنون با صفحاتی با پسوند PHP برخورد نكرده باشد و البته اين پسوند نامی آشنا برای طراحان و برنامهنويسان وب است.
پی اچ پی (PHP) يكی از محبوبترين و رايجترين زبانهای برنامهنويسی برای ايجاد صفحات پويا در وب است و كمتر خواستهای در محيط وب وجود دارد كه در PHP قادر به انجام آن نباشيم. از ايجاد يك صفحه ساده برای پردازش اطلاعات فرمها، ارتباط با بانكهای اطلاعات، كار با سوكتهای TCP، پردازش فرمتهای PDFوZIP و حتی تصوير بخشی از توانايی اين زبان است.
پی اچ پی چگونه كار میكند؟
نوشتن يك برنامه پی اچ پی شبيه ايجاد يك صفحه HTML است و تنها با اين تفاوت كه كدهای اين زبان در داخل صفحات و دربين كدهای HTML درج میشود و البته طبيعی است كه يك فايل پی اچ پی میتواند تنها شامل كدهای PHP باشد.با توجه به اين كه PHP يك زبان طرف سرويسدهنده است، و بنابراين برای اجرا، اسكريپتهای آن بايد آنها را به كامپيوتر سرويسدهنده وب (مانند سيستم Windows 2000 و نرمافزار IIS) انتقال دهيم و حالا با تايپ نام فايل آن در گردشگر اينترنت میتوانيم آنرا اجرا و خروجی احتمالی را مشاهده كنيم.
طبيعی است كه در سمت سرويسگيرنده (كاربر سايت)امكان مشاهده كدها وجود ندارد.
پس از درخواست برای اجرای يك اسكريپت PHP فايل حاوی كدهای PHP به برنامه مفسر PHP انتقال داده شده(معمولا php.exe) و اين برنامه بعد از تفسير واجرای اسكريپت ،نتيجه را به سمت كاربر میفرستد.
در زير نمونهای از يك اسكريت ساده PHP درج شده است. اين برنامه پيغام ارسالی توسط كاربر را میگيرد (اين پارامتر میتواند توسط يك فرم يا در نوار آدرس گردشگر اينترنت تايپ شود) و آن را در قالب HTML برای كاربر ارسال میكند.
كد HTMLنتيجه حاصل كه كاربر امكان مشاهد آنرا دارد
http://www.mysite.com/test.php?message=hello
اسكريت PHP كه در سمت سرويس دهنده اجرا میشود
<HTML>
<BODY>
hello
</BODY>
</HTML>
<HTML>
<BODY>
<?php
echo $_GET['message'];?>
</BODY>
</HTML>
از آنجا كه آموزش اين زبان در اين مقاله نمیگنجد، بنابراين در ادامه نگاهی به تاريخچه ، مزايا و احتمالا معايب آن خواهيم داشت.
تاريخچه
پی اچ پی در سال 1994 توسط راسموس لردرف Rasmus Lerdorf و برای استفاده شخصیاش ايجاد شد. او بعدها و در سال 1995 نسخه حرفهایتر از مفسر زبان PHP به نام Version 2 PHP/FI را عرضه كرد، و در سال 97 تعداد سايتهايی كه از PHP استفاده میكردند به بيش از 50000 رسيد و امروزه نيز ميليونها سايت از آن استفاده میكنند. سايتهای مشهوری چون Alltheweb و mamma از اين زبان استفاده میكنند و حتی Yahoo نيز در حال شروع استفاده از اين زبان برای توسعه وب سايتهای خود است.
پی اچ پی زبانی برای همه سيستم عاملها
يكی از برترين مزايای زبان PHP سازگاری آن با اكثر سيستم عاملها و نرمافزارهای وب سرور (مانند IIS و Apache) است. برخی از ديگر زبانها و تكنولوژیها مانند ASP محدود به سيستم عامل windows است و پشتيبانی از آن در ديگر سيستم عاملها بسيار پرهزينه و محدود است، و برخی نيز مانند JSP مشكلاتی با برخی نرمافزارهای وب سرور دارد.
ساختار و امكانات پی اچ پی به شكل مستقل از سيستم عامل شكل گرفته است و اين بدان معنا است كه به طور مثال برنامهنويس میتواند اسكريپت خود را تحت سيستم عامل ويندوز نوشته و تست كند و سپس آنرا بدون تغيير به سيستم عامل يونيكس يا لينوكس انتقال دهد.
در PHP امكان استفاده از برخی از امكانات خاص سيستم عاملهای مشهور نيز در نظر گرفته است كه برای نمونه میتوان از پشتيبانی از تكنولوژی DCOM و يا Windows API نام برد.
نسخههای جديد مفسر PHP سازگار با ديگر تكنولوژیهای خاص وبسرورها مانند ISAPI نيز میباشد.
پی اچ پی رايگان و Open Source
تهيه برنامه مفسر PHP برای همه سيستم عاملها رايگان است و علاقهمندان میتوانند آخرين نسخه مفسر اين زبان را از سايت رسمی PHP بارگذاری (Download) كند.
همچنين امكان تهيه رايگان سورس مفسر پی اچ پی نيز فراهم است ، و اين مسئله علاوه بر اين كه در گسترش امكانات اين زبان بسيار موثر بوده است، مزيتی برای شركتها و توسعهدهندگان برای انتخاب اين زبان است چرا كه پشتيبانی و اعتماد به آن را راحتتر كرده است.
بسياری از ويرايشگرهای حرفهای اين زبان نيز يا رايگان هستند و يا با هزينه بسيار كم میتوان آنها را تهيه كرد، در حالی كه ديگر تكنولوژیها، مثلاً تهيه پلاتفورمهای جاوا هزينه هنگفتی دارد و همچنين كار حرفهای با تكنولوژی .NET نيز نياز به تهيه Visual Studio.NET و پرداخت هزينه چند صد دلاری است.
" "
پی اچ پی (PHP) يكی از محبوبترين و رايجترين زبانهای برنامهنويسی برای ايجاد صفحات پويا در وب است و كمتر خواستهای در محيط وب وجود دارد كه در PHP قادر به انجام آن نباشيم. از ايجاد يك صفحه ساده برای پردازش اطلاعات فرمها، ارتباط با بانكهای اطلاعات، كار با سوكتهای TCP، پردازش فرمتهای PDFوZIP و حتی تصوير بخشی از توانايی اين زبان است.
" "
سرعت بالای تفسير و اجرای PHP
پی اچ پی يكی از سريعترين زبانها در نوع خود است. تفسير و اجرای يك اسكريپ php به طور متوسط تا سه و چهار برابر يك اسكريپ ASP است. (البته بايد در نظر داشته باشيم كه IIS با Cach اسكريپتهای ASP سرعت اجرای آنها را در دفعات بعد بالا میبرد)
همچنين در ASP استفاده زيادی از اشيا COM میشود كه باعث كاهش سرعت و مصرف منابع سيستم میشود در حالی كه در PHP بسياری از امكانات و حتی برقراری ارتباط با يكی محبوبترين نرمافزار مديريت بانكهای اطلاعاتی (mySql به صورت توكار نهاده شده است.
شركت Zend كه تهيه كننده فعلی موتور مفسر و پشتيبانی كننده آن است، محصولات ديگری را نيز در جهت بهينه كردن سرعت اجرای PHP ارائه كرده است اين محصولات با افزايش سرعت تفسير و همچنين ذخيره كردن نتيجه تفسير (Cash) باعث افزايش چندين برابر اجرای آن میشوند.
ساختار مناسب و امكانات بالا در PHP
همان طور كه در ابتدای مقاله اشاره شد، كمتری نيازی در برنامهنويسی تحت وب وجود دارد كه در PHP امكان رفع آن نباشد. پی اچ پی شامل كتابخانهای غنی از توابعی است كه امكان پردازش اطلاعات فرمها، كار با بانكهای اطلاعاتی، فايلهای متنی و باينری، فايلهای گرافيكی، PDF ، ZIP و پروتكلهای TCP ، FTP ، DNS ،SMTP و ... را برای برنامهنويس فراهم میكند، اين را مقايسه كنيد با ASP كه به طور مستقل امكان Upload File ،ارسال ايميل يا كار با فايلهای باينری را ندارد.
همچنين PHP يكی از بهترين پشتيبانیها را از نرمافزارهای بانك اطلاعات دارد. mySql,Sql Server,mSql,dBase,Oracle,IBM DB2,PostgreSQL,InterBase و بسياری از نرمافزارهای ديگر در پی اچ پی قابل استفاده هستند و البته امكان كار با ODBC و COM برا ی استفاده از بانكهای Ms Access و ديگرمحصولات نيز هست.
قدرت زبان پی اچ پی تنها در كتابخانه توابع آن نيست، پشتيبانی بسيار خوب از برنامهنويسی شیءگرا (OOP) و كار آسان و سريع با متغيرها از مزايای دورنی اين زبان است.
معايب
حال كه از حسن PHP گفتيم، بد نيست اشارهای نيز به برخی معايب آن داشته باشيم.
نحو (syntax) زبان PHP بسيار شبيه زبان C++ و Perl است. اين اگر چه باعث استقبال از اين زبان توسط برنامهنويسان C و يا Perl شد، اما اين نحو برای بسياری از طراحان صفحات وب چندان آسان نيست و بسياری معتقد هستند كه تكنولوژی ASP و زبان VBScript آسانتر و قابل دركتر است و همچنين JSP و زبان جاوا نيز به دليل محبوبيت و ساختار قدرتمند آن مورد توجه است.
يك اشكال ديگر PHP عدم پشتيبانی خوب آن از يونيكد و به خصوص زبان فارسی است، حتی آخرين نسخههای اين زبان نيز امكان سورت(Sort) صحيح متون فارسی را ندارد. البته اين اشكال با كامپايل مجدد يا كمی برنامهنويسی قابل حل است.
از كجا شروع كنيم ؟
تقريبا میتوان گفت اگر دارای هر سيستم عاملی هستيد میتوانيد استفاده و كار با اين زبان را شروع كنيد؛ تنها كافی است به سايت رسمی زبان PHP به آدرس http://www.php.net (http://pnu-club.com/redirector.php?url=http%3A%2F%2Fwww.php.net%2F) برويد، و نسخه مفسر اين زبان را با توجه به سيستم عامل خود بارگذاری (Download) كنيد. راهنما و مرجع دستورات و توابع اين زبان در همين سايت قراردارد.
همچنين سايت http://www.IranPHP.net (http://pnu-club.com/redirector.php?url=http%3A%2F%2Fwww.iranphp.net%2F ) (كه به همت آقای هاشمی به زبان فارسی ايجاد شده است) میتواند مكانی مناسب برای حل مشكلات و تماس با ديگر برنامهنويسان PHP باشد
در اين درس به دستوارات خروجي در php مي پردازيم.
در php ما سه دستور (تابع) براي نمايش در خروجي داريم كه عبارتند از:
printf()
print()
echo()
دستور echo ساده ترين دستور يا بهتر است بگويم تابع خروجي در زبان php استكه شكل كلي اين تابع بدين صورت است:
echo(رشته يا متغيرها );
بعد از نوشتناين تايع ما مي توانيم عباراتي را كه مي خواهيم به خروجي ارسال كنيم را بنويسيم فقطتوجه داشته باشيد كه گذاشتن پرانتز الزامي نيست.
مثال:
echo “Yunas farhadnia” ;
در مثال بالا رشته مذكور در خروجي نمايش داده مي شود.
اگربخواهيم علاوه بر اين كه يك رشته را نمايش مي دهيم يك متغير را نيز به خروجي ببريمميتوانيم آن دو را به وسيله كاما از هم جدا كنيم.
مثال:
$var=12;
echo “Yunas”,$var;
خروجي دستور بالا رشته مذكور همراه با عدد 12 است.
در زبان php براي الصاق رشته ها به يكديگر از يك دات (.) استفاده مي شود يعني اگر مابخواهيم يك رشته را به رشته ديگر بچسبانيم و به خروجي ببريم بايد بين آن دو از يكعلامت نقطه استفاده كنيم.
مثال:
echo “Yunas”.”farhadnia”;
تابع print هم دقيقا مانند تابع echo عمل مي كند ولي تابع printf اندكي با دو تابع قبلي فرق ميكند و ان هم در نوع معرفي خروجي به اين تابع است.
شكل كلي تابع printf() بدينصورت است:
Printf(“string format”, argomants);
ارگومان ليست متغير هايياست كه بايد به خروجي بروند و string format يك رشته از ليترال ها (در ادامه بحثخواهد شد) و كاراكتر هاي مشخص كننده نوع متغير است كه عبارتند از:
%d براياعداد صحيح
%f براي اعداد اعشاري
%c براي كاركتر هاي اسكي
%s براي رشتهها
%o براي اعداد اكتال
%b براي اعداد باينري
%x براي اعداد هگز
مثال:
$x=12;
$str=”this is a test”;
$ch=’*’;
printf(“Hello world%d,%s,%c”,$x,$str,$ch);
خروجي دستور فوق بدين شكل است:
Hello world12,this is a test,*
در دستور بالا متوجه شديد كه عين عبارترشته اي كه در قسمت اول دستور نوشته شود به خروجي مي رود.
ليترال ها:
ليترال ها كاركتر هاي خاصي هستند كه وظيفه فرمت بندي خروجي را به عهده دارند .
و عبارتند از:
\n برو به سطر جديد
\r برو به سر سطر
\t برو بههشت كاراكتر بعد (معادل دكمه tab )
\\ براي چاپ \
\$ براي چاپ $
“\ براي چاپ “
\x براي چاپ اعداد هگز
ليترال ها در كجا مورد استفاده قرارمي گيرند:
در بين رشته ها هنگام استفاده از دستورات و توابع خروجي.
مثال:
echo “Yunas farhadnia\n url:<a href=http://protux.persianblog.com>protux.persianblog.com</a>”;
Or
printf(“my name: is\t Yunas farhadnia”);
به همينسادگي شما قادر خواهيد بود كه صفحات قدرتمندي را طراحي كنيد
در اين درس ما به مقدمات برنامه نويسي با php مي پردازيم.
Php مانند هر زبانديگر قوائد نگارش خاص خود را دارد كه قصد داريم در اين گفتار به آنها بپردازيم واول از همه به ساختار فايل هاي php مي پردازيم.
فايل هايي كه حاوي كد هاي php هستند با پسوند .php (دات php ) مشخص مي شوند و حاوي يك سري تگ html به همراه كدهاي مخصوص php هستند اما چرا تگ هاي html ؟
خوب به دليل اينكه php يك زبان html base است يعني ما كد هاي php را در بين تگ هاي html مي نويسم به چه صورت به صورتمقابل:
<html>
<head>
<?php
كد هاي php
?>
</head>
<body>
-------------
-------------
</body>
</html>
يعني ابتداي كد هاي php با علامت <?php شروع مي شوند و به علامت ?> ختم مي شوند البته ضرورتي ندارد كه حتما كد هاي اينزبان را در بين دو تگ <head> و </head> نوشت مي توانيم كد هاي php رادر بدنه سند html هم بنويسم و حاصل پردازش آنها را براي كاربر ارسال نمائيم درآينده نزديك شما خواهيد فهميد كه چه موقع بهتر است كه كد ها را در هد فايل نوشت وچه موقع در بدنه و چه موقع در هر دو قسمت نوشت.
در مورد ديگر قوائد زبان php بايد گفت كه تمام دستورات php به علامت ; (سمي كلون) ختم مي شوند و اين علامت پاياندستور را مشخص مي كند و اگر نوشته نشود برنامه با خطا متوقف مي شود.
در زبان php متغير ها به حروف كوچك و بزرگ حساس هستند يعني كلمات HELLO و Hello و hello دراين زبان با هم متفاوت مي باشند پس بهتر است ياد بگيريم كه همواره به اين نكته توجهداشته باشيم. ولي كلمات رزرو شده (كلمات كليدي اين زبان) مثل if و while و... بهحروف بزرگ و كوچك حساس نمي باشند.
در اين زبان هم مانند تمام انواع ديگر براينام گذاري توايع و متغير ها قوانيني وجود دارد كه از آن جمله مي توان گفت كه حروفاول نام ها نبايد با عدد شروع شود. و متغير ها بايد با علامت $ (دالر) شروع شوند وقبل از تعريف يك متغير نمي توان از آن استفاده كرد يعني اينكه اول بايد متغير راتعريف كرد و بعد آن را به كار بست.
متغير ها:
متغير ها مكان هايي از حافظهاصلي (RAM ) هستند كه وظيفه نگهداري داده ها را به عهده دارند.
در زبان php باانواع مختلفي از داده ها سر و كار داريم مثل كاراكتر ها (char ) ، اعداد صحيح ( integer)، اعداد اعشاري (float ) و رشته ها (string ) و ... پس متغير ها مكاني براينگهداري اين گونه داده ها هستند بر خلاف زبان هاي برنامه نويسي سيستمي كه ما درهنگام تعريف متغير بايد نوع آن را هم ذكر كنيم در زبان هاي اسكريپت نويسي مثل php ما نيازي به ذكر نوع نيستيم يعني خود اين زبان زبان ها بر حسب مقدار اوليه اي كه بهمتغير داده مي شود بهترين نوع را به آن اختصاص مي دهد يعني اگر ما بنويسيم:
$x;
$x=12;
php متغير $x را از نوع اعداد صحيح (integer ) مي گيرد و اگر بهعنوان مثالي ديگر بنويسيم:
$ch=’*’;
php اين متغير را با نوع char يا همانكاراكتر منظور مي كند.
در php متغير هاي پيش فرضي هم براي نگهداري يك سري ازخصوصيات سيستم وجود دارد مثل $REMOT_ADDER كه در جاي خود به طور مفصل مور بحث قرارخواهند گرفت.
توضيحات (comment ):
توضيحات در هر زباني براي يك برنامه نويسبسيار اهمييت دارد چرا كه با آن مي توانيد مفهوم هر خط كد را مشخص كنيد و اين وقتيمهم است كه شما بخواهيد كه در آينده كد هاي خود را گسترش دهيد و يا بهينه كنيد و درآن زمان توضيحاتي كه در لابه لاي كد هاي خود قرار داده ايد به كمك شما خواهند آمد وروند كار شما را تسريع مي بخشند. و حتي در برنامه هايي كه به شكل گروهي نوشته ميشوند يا برنامه هايي كه جنبه آموزشي دارند اين comment گذاري ها بسيار مورد استفادهقرار مي گيرند.
در php سه روش براي comment گذاري وجود دارد كه عبارتند از:
يك) استفاده از علامت // يعني متني كه بعد از اين علامت نگاشته شود يك كامنتمحسوب گشته و در هنگام اجراي برنامه پردازشي روي ان انجام نمي شود.
دو) استفادهاز علامت # كه آن هم مانند توضيح بالا است و متن بعد از آن پردازش نمي شود.
سه) استفاده از علامت /* در ابتدا و */ در انتهاي متني كه مايليد به عنوان كامنت درجشود.
مثال:
<Html>
<?php
$x=12; // this is case of define variant
$z=’@’; # line 2 and define z variant
/* end of php code */
?>
</Html>
عملگر ها:
در php ما عملگر هاي مقايسه اي وعملگر هاي حسابي و عملگر هاي منطقي و عملگر هاي بيتي را داريم كه تك تك مورد بررسيقرار خواهند گرفت.
عماگر هاي حسابي:
عبارتند از نشانه هايي كه عمليات رياضيرا براي ما انجام مي دهند.
* ضرب دو عملوند
/ تفسيم دو عملوند
% بدست آوردن باقيمانهد تقسيم دو عملوند
+ جمع دو عملوند
- تفريق دو عملوند
++ يك واحد افزايش يك عملوند
-- يك واحد كاهش يك عملوند
در بينعملگر هار بالا به نظر همه واضح باشند جزء عملگر هاي ++ (پلاس پلاس ) و- - (ماينسماينس) كه با مثال هاي به توضيح آنها خواهيم پرداخت :
$a=5
$a++;
عمليات بالا ابتدا 5 را به متغير تعريف شده اختصاص مي دهد و بعد در دستور دوممتغير يك واحد افزايش مي يابد.
عملگر هاي رابطه اي:
عملگر هاي رابطه ايبراي چك كردن شرط هاي بولي (درست يا غلط ) به كار گرفته مي شوند و عبارتند از:
&&يا And كه در صورتي كه حاصل دو طرف صحيح باشد نتيجه صحيح بر ميگرداند
Or يا || در صورتي نتيجه صحيح بر مي گرداند كه يك طرف درست ياشد
Not يا ! كه حاصل عملوند خود را معكوس مي كند
xor بايد يا طرف راست درست باشد يا چپولي نه هر دو
عملگر هاي مقايسه اي:
كه براي مقايسه بزركتر و كوچكتر يامساوي و... در بين متغير ها و داده ها بكار ميروند كه عبارتند از:
> كوچكتر
< بزرگتر
<= بزرگتر و مساوي
>= كوچكتر و مساوي
!= نامساوي
= = مساوي
خوب تا اينجا بخش زيادي از مقدمات را فرا گرفته ايمفقط مانده عملگر هاي بيتي كه به علت اينكه مبحث مربوط به آنها نياز مند يك كم مقدمهراجب به سيستم و مبنا ها مي باشد و اينكه كاربرد زيادي هم در نوشتن برنامه اي تحتوب ندارند من فاكتور گرفته و مطالعه آن را به عهده خودتان مي گذارم البته اگربخواهيد برنامه هاي امني تحت شبكه بنويسيد و مبا حث رمز نگاري داده ها را در صفحاتخو راعايت كنيد ناچار به فرا گيري اين مبحث نيز هستيد ولي از انجا كه ما در ابتدايكار هستيم فعلا در اين مورد بحث نمي كنيم.
ثوابت:
ثابت ها مكان هايي ازحافظه هستند كه مفدار خود را تا پايان برنامه حفظ مي كنند و ارزش آنها در طولبرنامه تغييري نمي كند.
در php براي تعريف ثوابت اينگونه عمل مي كنيم:
define( constant name,value);
كه constant name نام ثابت و value مقدار آناست.
خوب براي اين درس مطالب ديگر كافي است فقط تا جايي كه مي توانيد تمرينكنيد زيرا از قديم گفته اند:
توانا بود هر كس كه تمرين كند ; (
در درس بعديبه ليترال ها و دستورات خروجي خواهيم پرداخت.
برای ثبت IP کسانی که از سایت دیدار کرده اند باید کار های زیر را انجامدهیم:
1. فایلی به نام log.php ایجاد کنیم.
2. کد های زیر را در در فایل log.php قرار داده و ذخیره کنیم:
<?php
$ip = $SERVER['REMOTE_ADDR'];
$fp = fopen("ip.txt", "a");
fputs($fp, "$ip\n");
fclose($fp);
?>
3. فایلی به نام ip.txt ایجاد کنیم.
4. فایل ها و CHMOD ip.txt را به 0666 آپلود کنیم.
5. کد های زیر را در صفحه ی مورد نظر خود بالا تر از تگ <html> قرار دهیم:
<? include ("log.php"); ?>
برای دیدن نتیجهبه yourwebsite.com/ip.txt مراجعه کنید.
Php يك زبان اسكريپت نويسي سمت سرور است (server side ) كه در سال 1994 توسط Rasmus Lerdorf ساخته شد و اولين نگارش آن ((Version در سال 1995 انتشار يافت php را يكزبان Open Source گويند چون اين زبان تحت قانون GNU/GPL ساخته شده و منبع (ٍSource ) آن در اختيار همگان مي باشد.
www.download.php.net/license/2_02.txt (http://pnu-club.com/redirector.php?url=http%3A%2F%2Fwww.download.php.n et%2Flicense%2F2_02.txt)
php يك زبان مستقل از سكو(cross platform) است يعني اينكه بر روي هر سيستمي با هر سختافزار و نرم افزارسيستم عاملي (OS ) قابل اجراست و اين يكي از فاكتور هاي قدرت ايننرم افزار محسوب مي شود.
حال به اين موضوع مي پردازيم كه فرق زبان هاي اسكريپتنويسي سمت سرور با زبان هاي اسكريپت نويسي سمت سرويس گيرنده(client side ) در چيست:
اصولا دو نوع زبان اسكريپت نويسي در وب وجود دارد يكي زبان هاي سمت سرور وديگري زبان هاي سمت سرويس گيرنده كه از زبان هاي سمت سرور مي توانيم بهphp, asp,asp.net را نام برد و از زبان هاي سمت سرويس گيرنده مي توان از jscript , javascript, vbscript و غيره نام برد اما تفاوت اين دو در اين است كه در زبان هايسمت سرويس گيرنده كدهاي اسكريپت مربوطه به ماشين درخواست كننده ارسال مي شوند واسكريپت به صورت كامل در ماشين كاربر اجرا مي شود و نتايج حاصل از آن هم فقط در آنماشين قابل رويت مي باشد و سرور ديگر هيچ اطلاعي از نتايج حاصله از عمليات را نداردولي در زبان هاي سمت سرور قضيه بر عكس است يعني كد هاي اسكريپت در سرور قرار دارندو وقتي كاربري تقاضايي (request ) را براي سرور مبني بر پردازش اطلاعاتي ارسال ميكند ابتدا يك رويه (procedure ) از آن اسكريپت فراخواني شده و پردازش به صورت كاملدر سرور صورت مي پذيرد و نتايج حاصل از آن براي كاربر ارسال مي گردد.
از فوايداسكريپت نويسي سمت گيرنده مي توان به كمي ترافيك نقل و انتقال اطلاعات در شبكه رانام برد و در نتيجه افزايش سرعت ولي زماني كه نياز است اطلاعاتي در سرور ذخيره شونديا اطلاعاتي از سرور براي گيرنده ارسال شود ما نيازمند به استفاده از اسكريپت هايسمت سرور هستيم.
خوب تا به اينجا ما به معرفي مقدماتي از Php پرداختيم ولي چونشخصا مايل نيستم كه اين سري از مقالات به مقدمات اين زبان قدرتمند بپردازند پس ازمقدمات به يك باره خارج مي شويم و مطالعه و تحقيق بيشتر را به خود شما مي سپاريم( كه البته با يك search كوچك در گوگل مي توانيد صدها مقاله كه بصورت جامع به معرفياين زبان پرداختند چه به زبان انگليسي و چه به زبان فارسي بيابيد).
نحوة نصب وپيكر بندي php :
براي نصب و پيكربندي اين زبان شما نياز به يك نرم افزار وبسرور مثل apache و يا iis داريد كه البته من apache را توصيه مي كنم نحوةْ نصب ايننرم افزارها و پيكر بندي آن ها از حوصلة اين نوشتار خارج است و اين مهم را نيز برعهده خود شما مي گزاريم ولي بعد از نصب يك وب سرور شما بايد خود نرم افزار php رااز اينترنت پايين گذاري(download ) كنيد كه براي اين امر مي توانيد از آدرس زيراستفاده كنيد:
www.php.net (http://pnu-club.com/redirector.php?url=http%3A%2F%2Fwww.php.net%2F)
بعد از دانلود اين نرم افزار شما بايد يك پايگاهداده اي سازگار با اين نرم افزار را هم دانلود كرده و نصب كنيد براي اين منظورپايگاه دادهاي mysql بسيار مناسب است نحوة پيكربندي اين نرم افزارها زياد سخت نيستدر همان سايت هاي ارائه دهنده مستندات زيادي در اين ضمينه وجود دارد و همچنين رويسايت ها و وبلاگهاي فارسي پس با اجازه دوستان من از تكرار اين مطا لب تكراري پرهيزكنم و فقط اكتفا كنم به نصب php و mysql بر روي linux RedHat9.
Php و mySql بهصورت آماده همراه سي دي هاي ردهت وجوددارند فقط شما بايد در هنگام نصب اين سيستمعامل گزينه وب سرور را در بخش اضافه و حذف نمودن بسته ها (packet ) ها تيك بزنيدويا بعد از نصب سي دي شماره يك redhat را در سي دي رام قرار دهيد و بعد از مشاهدهمنوي حذف و اضافه بسته هاي نرم افزاري در قسمت وب سرور تيك مربوطه را علامت بزنيد.
بعد از نصب يك با محيط گرافيكي (X ) را با زدن همزمان دكمه هاي alt+ctrl+backspace راه اندازي كنيد (هر چند كه نيازي هم به اين كار نيست) و بعد بااكانت root وارد سيستم شويد توجه داشته باشيد كه در مرحله قبل هم شما بايد بااكانتي با سطح دسترسي مدير وارد سيستم مي شديد تا قادر به انجام عمليات نصب وب سرورمي شديد بعد از اين كه وارد سيستم شديد يك ترمينال به شل سيستم باز كنيد و اينفرمان ها را در ان تايپ كنيد:
chkconfig --level 35 httpd on
chkconfig --level 35 mysqld on
اين فرامين ترتيبي مي دهند كه بعد از هر بار راه اندازيسيستم دايمون هاي وب سرور و mysql سرور به صورت خودكار در سطح شل و محيط گرافيكياجرا شوند.
خوب اين بار واقعا نيازمند اين هستيد كه سيستم را يك بار راه اندازيكنيد پس اين كار را انجام دهيد و بعد از آن براي اين كه تست كنيم كه وب سرور مادرست كار مي كند مرورگر موزيلا را بار كرده و در قسمت آدرس آن تايپ كنيد localhost يا 127.0.0.1 كه در هر صورت در صورت پيكربندي صحيح آپاچي بايد صفحة با عنوان test page را مشاهده كنيد براي تست mysql هم در شل تايپ كنيد mysqlshow كه در اين صورتبايد يك سري اطلاعات در اختيارتان قرار دهد اگر همه چيز درست پيش رفته باشد شماالان مي توانيد كه اسناد(document) HTMLو php خود را در آدرس /var/www/html قرارداده وبا آي پي localhost و بعد نام آن صفحه در مرورگر موزيلا صفحه خود را ببينيد وتست كنيد.
اولين برنامه php :
در يك سند متني ساده اين دستورات را تايپكنيد:
كد:
<html>
<?php
echo "this is a test";
?>
</html>
كد بالا را با پسوند html ذخيره كنيد و اگر از لينوكساستفاده مي كنيد آن را در آدرس بالا قرار داده وبعد با موزيلا براي ديدن ان بصورتزير در قسمت آدرس بار صفحه خود را صدا بزنيد:localhost/your file name.php و براي iis بايد فايل را در پوشه inetpub/wwwroot قرار داده و بعد به صورت بالا در اينترنتاكسپلور فايل خود را صدا زده و نتيجه كار را مشاهده كنيد.
براي درس اول به نظرمقدمات كافي باشد در درس آينده به اصول برنامه نويسي php خواهيم پرداخت
نصب PHP تحت Windows به چند روش
نصب PHP تحت Windows...
در اين مقاله به نصب PHP تحت سيستم عامل Windows و بر روي Web Server استاندارد IIS مي پردازيم ...
نويسنده: سهيل صادقزاده
mailto:Clash_IDOL@hotail.com
با سلام خدمت شما دوستان و علاقهمندان طراحي و برنامهنويسي تحت Web ...
در اين مقاله من سعي دارم روش نصب ساده و مختصر مفسر زبان PHP را توضيح دهم و نوآموزان و دوستاني كه علاقهمند به آشنايي با اين زبان قدرتمند هستند به راحتي بتوانند مفسّر آنرا بر روي Web Server شخصي خود نصب كنند. در اين نسخه از مقاله به نصب PHP تحت سيستم عامل Windows خواهيم پرداخت و در نسخه بعدي روش نصب بر روي سيستم عامل Linux را توضيح خواهم داد.
ما در اين دو مقاله به نصب استاندارد PHP بر روي WebServerهاي پيش فرض خواهيم پرداخت و براي نيل به اين منظور بر روي سيستم عامل Windows از IIS و تحت سيستم عامل Linux از Apache استفاده ميكنيم. گرچه خيلي از علاقهمندان Slackware پيشنهاد ميكنند كه حتّي بر روي سيستم عامل ويندوز از Apache استفاده شود بنده به هيچ وجه اين مسئله رو براي تازه كاران پيشنهاد نميكنم. بدون شك نميتوان از قدرت اين Server حتّي تحت سيستم عامل MS Windows چشم پوشي كرد ولي براي كاربران معمولي و همچنين طراحان حرفهاي اي كه سعي در ارتقاء Solutionهاي خود دارند استفاده كردن از استانداردها بسيار مناسبتر خواهد بود. شايد در مقاله مفصّلي درباره اين مزيتها و معايب مجالي براي صحبت بود. بنابراين در مقاله حاضر تحت سيستم عامل ويندوز به نصب PHP بر روي IIS و Personal Web Managerخواهيم پرداخت.
PHP چيست و چگونه كار ميكند؟
PHP مخفّف Hypertext Preprocessor يك زبان Scripting و Server-Side مي باشد. يك Script به كدي از برنامه ميگويند كه بصورت ابتدايي Compile نميشود و فقط در صورت فراخواني و يا درخواستي براي اجرا توسط مفسّر زبان مورد نظر ترجمه مي شود و به خروجي فرستاده مي شود. اين به اين معني ميباشد كه شما دقيقاً كد برنامه خود را در جاي مورد نياز به كار ميبريد و رابط اجرايي برنامه آنرا به مفسّر مورد نظر ارجاء ميدارد. درباره مثال ما مفسّر مذكور مفسّر PHP يا برنامه PHP.exe مي باشد و رابط اجرايي Web Server مورد نظر و در اينجا Internet Information Service (IIS) است. براي اينكه بتوانيد Scriptهاي PHP خود را اجرا كنيد نياز به نصب مفسّر PHP بر روي Web Server خود داريد. توجّه كنيد كه اين مفسّر بر روي Web Server شما نصب خواهد شد. شما ميتوانيد به PHP.exe مانند يك Plug-in يا Add-on نگاه كنيد چرا كه روش كار هر دو به يك صورت ميباشد. بعد از نصب مفسّر PHP شما قادر خواهيد بود كه از كدهاي PHP به همراه كدهاي HTML خود در صفحات Web استفاده كنيد و همچنين ميتوانيد Scriptهاي صرفاً PHP خود را به عنوان ترمينالهاي تفسير كننده داده ها و رابطهاي ورودي و خروجي بر روي سرور خود قرار دهيد. اكنون به روش نصب PHP تحت Windows توجه كنيد.
روش نصب ...
دور خيز ...
همانطور كه گفتيم شما مفسّر PHP را بر روي Web Serverخود نصب خواهيد كرد. تحت سيستم عامل Windows اعم از هستههاي 9X و يا NT شما اين قابليت را داريد كه از Web Serverهاي اختراع Microsoft يعني IIS يا Personal Web Manager استفاده كنيد. همچنين ميتوانيد از هر دوي اين نرمافزارها در كنار يكديگر استفاده نماييد. اگر هنوز Web Serverي بر روي سيستم خود نصب نكردهايد بايد قبل از شروع پروسه نصب PHP اين كار را انجام دهيد. براي نصب به CD-ROM و يا پكيج اصلي ويندوز مورد استفاده خود نياز داريد و از بخش Add/Remove Programs در Control Panel مي توانيد IIS را در قسمت Windows Components بيابيد. بعد از نصب حتماً بايد يكبار سيستم خود را Restart كنيد تا Socketها و Portهاي مورد نياز بر روي OSشما براي سرويس دهنده Implement شوند. بعد از راه اندازي مجدّد بايد از صحّت عملكرد Web Server خود اطمينان حاصل كنيد. براي اينكار در پنجرهاي از Browser خود، Internet Explorer و يا NetscapeNavigator آدرس http://localhost و يا http://127.0.0.1 را امتحان كنيد، اگر Browser شما صفحه خوش آمد گويي IIS را نمايش داد Web Server شما به سلامت مشغول كار است. براي دسترسي به تنظيمات IIS مي توانيد به بخش Administrative Tools در ControlPanel مراجعه كنيد و از آنجا Internet Information Service Consol را اجرا نماييد. بصورت پيش فرض مسير اصلي و قابل خواندن IIS در X:\inetpub\wwwroot قرار دارد. شما ميتوانيد صفحات خود را در اينجا قرار دهيد و همچنين از كنسول تنظيمات IIS اين آدرس را تغيير دهيد و يا Virtual Directoryهاي ديگري به آن بيافزاييد. در ادامه به نصب PHP ميپردازيم.
پی اچ پی (PHP) يكی از محبوبترين و رايجترين زبانهای برنامهنويسی برای ايجاد صفحات پويا در وب است و كمتر خواستهای در محيط وب وجود دارد كه در PHP قادر به انجام آن نباشيم. از ايجاد يك صفحه ساده برای پردازش اطلاعات فرمها، ارتباط با بانكهای اطلاعات، كار با سوكتهای TCP، پردازش فرمتهای PDFوZIP و حتی تصوير بخشی از توانايی اين زبان است.
پی اچ پی چگونه كار میكند؟
نوشتن يك برنامه پی اچ پی شبيه ايجاد يك صفحه HTML است و تنها با اين تفاوت كه كدهای اين زبان در داخل صفحات و دربين كدهای HTML درج میشود و البته طبيعی است كه يك فايل پی اچ پی میتواند تنها شامل كدهای PHP باشد.با توجه به اين كه PHP يك زبان طرف سرويسدهنده است، و بنابراين برای اجرا، اسكريپتهای آن بايد آنها را به كامپيوتر سرويسدهنده وب (مانند سيستم Windows 2000 و نرمافزار IIS) انتقال دهيم و حالا با تايپ نام فايل آن در گردشگر اينترنت میتوانيم آنرا اجرا و خروجی احتمالی را مشاهده كنيم.
طبيعی است كه در سمت سرويسگيرنده (كاربر سايت)امكان مشاهده كدها وجود ندارد.
پس از درخواست برای اجرای يك اسكريپت PHP فايل حاوی كدهای PHP به برنامه مفسر PHP انتقال داده شده(معمولا php.exe) و اين برنامه بعد از تفسير واجرای اسكريپت ،نتيجه را به سمت كاربر میفرستد.
در زير نمونهای از يك اسكريت ساده PHP درج شده است. اين برنامه پيغام ارسالی توسط كاربر را میگيرد (اين پارامتر میتواند توسط يك فرم يا در نوار آدرس گردشگر اينترنت تايپ شود) و آن را در قالب HTML برای كاربر ارسال میكند.
كد HTMLنتيجه حاصل كه كاربر امكان مشاهد آنرا دارد
http://www.mysite.com/test.php?message=hello
اسكريت PHP كه در سمت سرويس دهنده اجرا میشود
<HTML>
<BODY>
hello
</BODY>
</HTML>
<HTML>
<BODY>
<?php
echo $_GET['message'];?>
</BODY>
</HTML>
از آنجا كه آموزش اين زبان در اين مقاله نمیگنجد، بنابراين در ادامه نگاهی به تاريخچه ، مزايا و احتمالا معايب آن خواهيم داشت.
تاريخچه
پی اچ پی در سال 1994 توسط راسموس لردرف Rasmus Lerdorf و برای استفاده شخصیاش ايجاد شد. او بعدها و در سال 1995 نسخه حرفهایتر از مفسر زبان PHP به نام Version 2 PHP/FI را عرضه كرد، و در سال 97 تعداد سايتهايی كه از PHP استفاده میكردند به بيش از 50000 رسيد و امروزه نيز ميليونها سايت از آن استفاده میكنند. سايتهای مشهوری چون Alltheweb و mamma از اين زبان استفاده میكنند و حتی Yahoo نيز در حال شروع استفاده از اين زبان برای توسعه وب سايتهای خود است.
پی اچ پی زبانی برای همه سيستم عاملها
يكی از برترين مزايای زبان PHP سازگاری آن با اكثر سيستم عاملها و نرمافزارهای وب سرور (مانند IIS و Apache) است. برخی از ديگر زبانها و تكنولوژیها مانند ASP محدود به سيستم عامل windows است و پشتيبانی از آن در ديگر سيستم عاملها بسيار پرهزينه و محدود است، و برخی نيز مانند JSP مشكلاتی با برخی نرمافزارهای وب سرور دارد.
ساختار و امكانات پی اچ پی به شكل مستقل از سيستم عامل شكل گرفته است و اين بدان معنا است كه به طور مثال برنامهنويس میتواند اسكريپت خود را تحت سيستم عامل ويندوز نوشته و تست كند و سپس آنرا بدون تغيير به سيستم عامل يونيكس يا لينوكس انتقال دهد.
در PHP امكان استفاده از برخی از امكانات خاص سيستم عاملهای مشهور نيز در نظر گرفته است كه برای نمونه میتوان از پشتيبانی از تكنولوژی DCOM و يا Windows API نام برد.
نسخههای جديد مفسر PHP سازگار با ديگر تكنولوژیهای خاص وبسرورها مانند ISAPI نيز میباشد.
پی اچ پی رايگان و Open Source
تهيه برنامه مفسر PHP برای همه سيستم عاملها رايگان است و علاقهمندان میتوانند آخرين نسخه مفسر اين زبان را از سايت رسمی PHP بارگذاری (Download) كند.
همچنين امكان تهيه رايگان سورس مفسر پی اچ پی نيز فراهم است ، و اين مسئله علاوه بر اين كه در گسترش امكانات اين زبان بسيار موثر بوده است، مزيتی برای شركتها و توسعهدهندگان برای انتخاب اين زبان است چرا كه پشتيبانی و اعتماد به آن را راحتتر كرده است.
بسياری از ويرايشگرهای حرفهای اين زبان نيز يا رايگان هستند و يا با هزينه بسيار كم میتوان آنها را تهيه كرد، در حالی كه ديگر تكنولوژیها، مثلاً تهيه پلاتفورمهای جاوا هزينه هنگفتی دارد و همچنين كار حرفهای با تكنولوژی .NET نيز نياز به تهيه Visual Studio.NET و پرداخت هزينه چند صد دلاری است.
" "
پی اچ پی (PHP) يكی از محبوبترين و رايجترين زبانهای برنامهنويسی برای ايجاد صفحات پويا در وب است و كمتر خواستهای در محيط وب وجود دارد كه در PHP قادر به انجام آن نباشيم. از ايجاد يك صفحه ساده برای پردازش اطلاعات فرمها، ارتباط با بانكهای اطلاعات، كار با سوكتهای TCP، پردازش فرمتهای PDFوZIP و حتی تصوير بخشی از توانايی اين زبان است.
" "
سرعت بالای تفسير و اجرای PHP
پی اچ پی يكی از سريعترين زبانها در نوع خود است. تفسير و اجرای يك اسكريپ php به طور متوسط تا سه و چهار برابر يك اسكريپ ASP است. (البته بايد در نظر داشته باشيم كه IIS با Cach اسكريپتهای ASP سرعت اجرای آنها را در دفعات بعد بالا میبرد)
همچنين در ASP استفاده زيادی از اشيا COM میشود كه باعث كاهش سرعت و مصرف منابع سيستم میشود در حالی كه در PHP بسياری از امكانات و حتی برقراری ارتباط با يكی محبوبترين نرمافزار مديريت بانكهای اطلاعاتی (mySql به صورت توكار نهاده شده است.
شركت Zend كه تهيه كننده فعلی موتور مفسر و پشتيبانی كننده آن است، محصولات ديگری را نيز در جهت بهينه كردن سرعت اجرای PHP ارائه كرده است اين محصولات با افزايش سرعت تفسير و همچنين ذخيره كردن نتيجه تفسير (Cash) باعث افزايش چندين برابر اجرای آن میشوند.
ساختار مناسب و امكانات بالا در PHP
همان طور كه در ابتدای مقاله اشاره شد، كمتری نيازی در برنامهنويسی تحت وب وجود دارد كه در PHP امكان رفع آن نباشد. پی اچ پی شامل كتابخانهای غنی از توابعی است كه امكان پردازش اطلاعات فرمها، كار با بانكهای اطلاعاتی، فايلهای متنی و باينری، فايلهای گرافيكی، PDF ، ZIP و پروتكلهای TCP ، FTP ، DNS ،SMTP و ... را برای برنامهنويس فراهم میكند، اين را مقايسه كنيد با ASP كه به طور مستقل امكان Upload File ،ارسال ايميل يا كار با فايلهای باينری را ندارد.
همچنين PHP يكی از بهترين پشتيبانیها را از نرمافزارهای بانك اطلاعات دارد. mySql,Sql Server,mSql,dBase,Oracle,IBM DB2,PostgreSQL,InterBase و بسياری از نرمافزارهای ديگر در پی اچ پی قابل استفاده هستند و البته امكان كار با ODBC و COM برا ی استفاده از بانكهای Ms Access و ديگرمحصولات نيز هست.
قدرت زبان پی اچ پی تنها در كتابخانه توابع آن نيست، پشتيبانی بسيار خوب از برنامهنويسی شیءگرا (OOP) و كار آسان و سريع با متغيرها از مزايای دورنی اين زبان است.
معايب
حال كه از حسن PHP گفتيم، بد نيست اشارهای نيز به برخی معايب آن داشته باشيم.
نحو (syntax) زبان PHP بسيار شبيه زبان C++ و Perl است. اين اگر چه باعث استقبال از اين زبان توسط برنامهنويسان C و يا Perl شد، اما اين نحو برای بسياری از طراحان صفحات وب چندان آسان نيست و بسياری معتقد هستند كه تكنولوژی ASP و زبان VBScript آسانتر و قابل دركتر است و همچنين JSP و زبان جاوا نيز به دليل محبوبيت و ساختار قدرتمند آن مورد توجه است.
يك اشكال ديگر PHP عدم پشتيبانی خوب آن از يونيكد و به خصوص زبان فارسی است، حتی آخرين نسخههای اين زبان نيز امكان سورت(Sort) صحيح متون فارسی را ندارد. البته اين اشكال با كامپايل مجدد يا كمی برنامهنويسی قابل حل است.
از كجا شروع كنيم ؟
تقريبا میتوان گفت اگر دارای هر سيستم عاملی هستيد میتوانيد استفاده و كار با اين زبان را شروع كنيد؛ تنها كافی است به سايت رسمی زبان PHP به آدرس http://www.php.net (http://pnu-club.com/redirector.php?url=http%3A%2F%2Fwww.php.net%2F) برويد، و نسخه مفسر اين زبان را با توجه به سيستم عامل خود بارگذاری (Download) كنيد. راهنما و مرجع دستورات و توابع اين زبان در همين سايت قراردارد.
همچنين سايت http://www.IranPHP.net (http://pnu-club.com/redirector.php?url=http%3A%2F%2Fwww.iranphp.net%2F ) (كه به همت آقای هاشمی به زبان فارسی ايجاد شده است) میتواند مكانی مناسب برای حل مشكلات و تماس با ديگر برنامهنويسان PHP باشد
در اين درس به دستوارات خروجي در php مي پردازيم.
در php ما سه دستور (تابع) براي نمايش در خروجي داريم كه عبارتند از:
printf()
print()
echo()
دستور echo ساده ترين دستور يا بهتر است بگويم تابع خروجي در زبان php استكه شكل كلي اين تابع بدين صورت است:
echo(رشته يا متغيرها );
بعد از نوشتناين تايع ما مي توانيم عباراتي را كه مي خواهيم به خروجي ارسال كنيم را بنويسيم فقطتوجه داشته باشيد كه گذاشتن پرانتز الزامي نيست.
مثال:
echo “Yunas farhadnia” ;
در مثال بالا رشته مذكور در خروجي نمايش داده مي شود.
اگربخواهيم علاوه بر اين كه يك رشته را نمايش مي دهيم يك متغير را نيز به خروجي ببريمميتوانيم آن دو را به وسيله كاما از هم جدا كنيم.
مثال:
$var=12;
echo “Yunas”,$var;
خروجي دستور بالا رشته مذكور همراه با عدد 12 است.
در زبان php براي الصاق رشته ها به يكديگر از يك دات (.) استفاده مي شود يعني اگر مابخواهيم يك رشته را به رشته ديگر بچسبانيم و به خروجي ببريم بايد بين آن دو از يكعلامت نقطه استفاده كنيم.
مثال:
echo “Yunas”.”farhadnia”;
تابع print هم دقيقا مانند تابع echo عمل مي كند ولي تابع printf اندكي با دو تابع قبلي فرق ميكند و ان هم در نوع معرفي خروجي به اين تابع است.
شكل كلي تابع printf() بدينصورت است:
Printf(“string format”, argomants);
ارگومان ليست متغير هايياست كه بايد به خروجي بروند و string format يك رشته از ليترال ها (در ادامه بحثخواهد شد) و كاراكتر هاي مشخص كننده نوع متغير است كه عبارتند از:
%d براياعداد صحيح
%f براي اعداد اعشاري
%c براي كاركتر هاي اسكي
%s براي رشتهها
%o براي اعداد اكتال
%b براي اعداد باينري
%x براي اعداد هگز
مثال:
$x=12;
$str=”this is a test”;
$ch=’*’;
printf(“Hello world%d,%s,%c”,$x,$str,$ch);
خروجي دستور فوق بدين شكل است:
Hello world12,this is a test,*
در دستور بالا متوجه شديد كه عين عبارترشته اي كه در قسمت اول دستور نوشته شود به خروجي مي رود.
ليترال ها:
ليترال ها كاركتر هاي خاصي هستند كه وظيفه فرمت بندي خروجي را به عهده دارند .
و عبارتند از:
\n برو به سطر جديد
\r برو به سر سطر
\t برو بههشت كاراكتر بعد (معادل دكمه tab )
\\ براي چاپ \
\$ براي چاپ $
“\ براي چاپ “
\x براي چاپ اعداد هگز
ليترال ها در كجا مورد استفاده قرارمي گيرند:
در بين رشته ها هنگام استفاده از دستورات و توابع خروجي.
مثال:
echo “Yunas farhadnia\n url:<a href=http://protux.persianblog.com>protux.persianblog.com</a>”;
Or
printf(“my name: is\t Yunas farhadnia”);
به همينسادگي شما قادر خواهيد بود كه صفحات قدرتمندي را طراحي كنيد
در اين درس ما به مقدمات برنامه نويسي با php مي پردازيم.
Php مانند هر زبانديگر قوائد نگارش خاص خود را دارد كه قصد داريم در اين گفتار به آنها بپردازيم واول از همه به ساختار فايل هاي php مي پردازيم.
فايل هايي كه حاوي كد هاي php هستند با پسوند .php (دات php ) مشخص مي شوند و حاوي يك سري تگ html به همراه كدهاي مخصوص php هستند اما چرا تگ هاي html ؟
خوب به دليل اينكه php يك زبان html base است يعني ما كد هاي php را در بين تگ هاي html مي نويسم به چه صورت به صورتمقابل:
<html>
<head>
<?php
كد هاي php
?>
</head>
<body>
-------------
-------------
</body>
</html>
يعني ابتداي كد هاي php با علامت <?php شروع مي شوند و به علامت ?> ختم مي شوند البته ضرورتي ندارد كه حتما كد هاي اينزبان را در بين دو تگ <head> و </head> نوشت مي توانيم كد هاي php رادر بدنه سند html هم بنويسم و حاصل پردازش آنها را براي كاربر ارسال نمائيم درآينده نزديك شما خواهيد فهميد كه چه موقع بهتر است كه كد ها را در هد فايل نوشت وچه موقع در بدنه و چه موقع در هر دو قسمت نوشت.
در مورد ديگر قوائد زبان php بايد گفت كه تمام دستورات php به علامت ; (سمي كلون) ختم مي شوند و اين علامت پاياندستور را مشخص مي كند و اگر نوشته نشود برنامه با خطا متوقف مي شود.
در زبان php متغير ها به حروف كوچك و بزرگ حساس هستند يعني كلمات HELLO و Hello و hello دراين زبان با هم متفاوت مي باشند پس بهتر است ياد بگيريم كه همواره به اين نكته توجهداشته باشيم. ولي كلمات رزرو شده (كلمات كليدي اين زبان) مثل if و while و... بهحروف بزرگ و كوچك حساس نمي باشند.
در اين زبان هم مانند تمام انواع ديگر براينام گذاري توايع و متغير ها قوانيني وجود دارد كه از آن جمله مي توان گفت كه حروفاول نام ها نبايد با عدد شروع شود. و متغير ها بايد با علامت $ (دالر) شروع شوند وقبل از تعريف يك متغير نمي توان از آن استفاده كرد يعني اينكه اول بايد متغير راتعريف كرد و بعد آن را به كار بست.
متغير ها:
متغير ها مكان هايي از حافظهاصلي (RAM ) هستند كه وظيفه نگهداري داده ها را به عهده دارند.
در زبان php باانواع مختلفي از داده ها سر و كار داريم مثل كاراكتر ها (char ) ، اعداد صحيح ( integer)، اعداد اعشاري (float ) و رشته ها (string ) و ... پس متغير ها مكاني براينگهداري اين گونه داده ها هستند بر خلاف زبان هاي برنامه نويسي سيستمي كه ما درهنگام تعريف متغير بايد نوع آن را هم ذكر كنيم در زبان هاي اسكريپت نويسي مثل php ما نيازي به ذكر نوع نيستيم يعني خود اين زبان زبان ها بر حسب مقدار اوليه اي كه بهمتغير داده مي شود بهترين نوع را به آن اختصاص مي دهد يعني اگر ما بنويسيم:
$x;
$x=12;
php متغير $x را از نوع اعداد صحيح (integer ) مي گيرد و اگر بهعنوان مثالي ديگر بنويسيم:
$ch=’*’;
php اين متغير را با نوع char يا همانكاراكتر منظور مي كند.
در php متغير هاي پيش فرضي هم براي نگهداري يك سري ازخصوصيات سيستم وجود دارد مثل $REMOT_ADDER كه در جاي خود به طور مفصل مور بحث قرارخواهند گرفت.
توضيحات (comment ):
توضيحات در هر زباني براي يك برنامه نويسبسيار اهمييت دارد چرا كه با آن مي توانيد مفهوم هر خط كد را مشخص كنيد و اين وقتيمهم است كه شما بخواهيد كه در آينده كد هاي خود را گسترش دهيد و يا بهينه كنيد و درآن زمان توضيحاتي كه در لابه لاي كد هاي خود قرار داده ايد به كمك شما خواهند آمد وروند كار شما را تسريع مي بخشند. و حتي در برنامه هايي كه به شكل گروهي نوشته ميشوند يا برنامه هايي كه جنبه آموزشي دارند اين comment گذاري ها بسيار مورد استفادهقرار مي گيرند.
در php سه روش براي comment گذاري وجود دارد كه عبارتند از:
يك) استفاده از علامت // يعني متني كه بعد از اين علامت نگاشته شود يك كامنتمحسوب گشته و در هنگام اجراي برنامه پردازشي روي ان انجام نمي شود.
دو) استفادهاز علامت # كه آن هم مانند توضيح بالا است و متن بعد از آن پردازش نمي شود.
سه) استفاده از علامت /* در ابتدا و */ در انتهاي متني كه مايليد به عنوان كامنت درجشود.
مثال:
<Html>
<?php
$x=12; // this is case of define variant
$z=’@’; # line 2 and define z variant
/* end of php code */
?>
</Html>
عملگر ها:
در php ما عملگر هاي مقايسه اي وعملگر هاي حسابي و عملگر هاي منطقي و عملگر هاي بيتي را داريم كه تك تك مورد بررسيقرار خواهند گرفت.
عماگر هاي حسابي:
عبارتند از نشانه هايي كه عمليات رياضيرا براي ما انجام مي دهند.
* ضرب دو عملوند
/ تفسيم دو عملوند
% بدست آوردن باقيمانهد تقسيم دو عملوند
+ جمع دو عملوند
- تفريق دو عملوند
++ يك واحد افزايش يك عملوند
-- يك واحد كاهش يك عملوند
در بينعملگر هار بالا به نظر همه واضح باشند جزء عملگر هاي ++ (پلاس پلاس ) و- - (ماينسماينس) كه با مثال هاي به توضيح آنها خواهيم پرداخت :
$a=5
$a++;
عمليات بالا ابتدا 5 را به متغير تعريف شده اختصاص مي دهد و بعد در دستور دوممتغير يك واحد افزايش مي يابد.
عملگر هاي رابطه اي:
عملگر هاي رابطه ايبراي چك كردن شرط هاي بولي (درست يا غلط ) به كار گرفته مي شوند و عبارتند از:
&&يا And كه در صورتي كه حاصل دو طرف صحيح باشد نتيجه صحيح بر ميگرداند
Or يا || در صورتي نتيجه صحيح بر مي گرداند كه يك طرف درست ياشد
Not يا ! كه حاصل عملوند خود را معكوس مي كند
xor بايد يا طرف راست درست باشد يا چپولي نه هر دو
عملگر هاي مقايسه اي:
كه براي مقايسه بزركتر و كوچكتر يامساوي و... در بين متغير ها و داده ها بكار ميروند كه عبارتند از:
> كوچكتر
< بزرگتر
<= بزرگتر و مساوي
>= كوچكتر و مساوي
!= نامساوي
= = مساوي
خوب تا اينجا بخش زيادي از مقدمات را فرا گرفته ايمفقط مانده عملگر هاي بيتي كه به علت اينكه مبحث مربوط به آنها نياز مند يك كم مقدمهراجب به سيستم و مبنا ها مي باشد و اينكه كاربرد زيادي هم در نوشتن برنامه اي تحتوب ندارند من فاكتور گرفته و مطالعه آن را به عهده خودتان مي گذارم البته اگربخواهيد برنامه هاي امني تحت شبكه بنويسيد و مبا حث رمز نگاري داده ها را در صفحاتخو راعايت كنيد ناچار به فرا گيري اين مبحث نيز هستيد ولي از انجا كه ما در ابتدايكار هستيم فعلا در اين مورد بحث نمي كنيم.
ثوابت:
ثابت ها مكان هايي ازحافظه هستند كه مفدار خود را تا پايان برنامه حفظ مي كنند و ارزش آنها در طولبرنامه تغييري نمي كند.
در php براي تعريف ثوابت اينگونه عمل مي كنيم:
define( constant name,value);
كه constant name نام ثابت و value مقدار آناست.
خوب براي اين درس مطالب ديگر كافي است فقط تا جايي كه مي توانيد تمرينكنيد زيرا از قديم گفته اند:
توانا بود هر كس كه تمرين كند ; (
در درس بعديبه ليترال ها و دستورات خروجي خواهيم پرداخت.
برای ثبت IP کسانی که از سایت دیدار کرده اند باید کار های زیر را انجامدهیم:
1. فایلی به نام log.php ایجاد کنیم.
2. کد های زیر را در در فایل log.php قرار داده و ذخیره کنیم:
<?php
$ip = $SERVER['REMOTE_ADDR'];
$fp = fopen("ip.txt", "a");
fputs($fp, "$ip\n");
fclose($fp);
?>
3. فایلی به نام ip.txt ایجاد کنیم.
4. فایل ها و CHMOD ip.txt را به 0666 آپلود کنیم.
5. کد های زیر را در صفحه ی مورد نظر خود بالا تر از تگ <html> قرار دهیم:
<? include ("log.php"); ?>
برای دیدن نتیجهبه yourwebsite.com/ip.txt مراجعه کنید.
Php يك زبان اسكريپت نويسي سمت سرور است (server side ) كه در سال 1994 توسط Rasmus Lerdorf ساخته شد و اولين نگارش آن ((Version در سال 1995 انتشار يافت php را يكزبان Open Source گويند چون اين زبان تحت قانون GNU/GPL ساخته شده و منبع (ٍSource ) آن در اختيار همگان مي باشد.
www.download.php.net/license/2_02.txt (http://pnu-club.com/redirector.php?url=http%3A%2F%2Fwww.download.php.n et%2Flicense%2F2_02.txt)
php يك زبان مستقل از سكو(cross platform) است يعني اينكه بر روي هر سيستمي با هر سختافزار و نرم افزارسيستم عاملي (OS ) قابل اجراست و اين يكي از فاكتور هاي قدرت ايننرم افزار محسوب مي شود.
حال به اين موضوع مي پردازيم كه فرق زبان هاي اسكريپتنويسي سمت سرور با زبان هاي اسكريپت نويسي سمت سرويس گيرنده(client side ) در چيست:
اصولا دو نوع زبان اسكريپت نويسي در وب وجود دارد يكي زبان هاي سمت سرور وديگري زبان هاي سمت سرويس گيرنده كه از زبان هاي سمت سرور مي توانيم بهphp, asp,asp.net را نام برد و از زبان هاي سمت سرويس گيرنده مي توان از jscript , javascript, vbscript و غيره نام برد اما تفاوت اين دو در اين است كه در زبان هايسمت سرويس گيرنده كدهاي اسكريپت مربوطه به ماشين درخواست كننده ارسال مي شوند واسكريپت به صورت كامل در ماشين كاربر اجرا مي شود و نتايج حاصل از آن هم فقط در آنماشين قابل رويت مي باشد و سرور ديگر هيچ اطلاعي از نتايج حاصله از عمليات را نداردولي در زبان هاي سمت سرور قضيه بر عكس است يعني كد هاي اسكريپت در سرور قرار دارندو وقتي كاربري تقاضايي (request ) را براي سرور مبني بر پردازش اطلاعاتي ارسال ميكند ابتدا يك رويه (procedure ) از آن اسكريپت فراخواني شده و پردازش به صورت كاملدر سرور صورت مي پذيرد و نتايج حاصل از آن براي كاربر ارسال مي گردد.
از فوايداسكريپت نويسي سمت گيرنده مي توان به كمي ترافيك نقل و انتقال اطلاعات در شبكه رانام برد و در نتيجه افزايش سرعت ولي زماني كه نياز است اطلاعاتي در سرور ذخيره شونديا اطلاعاتي از سرور براي گيرنده ارسال شود ما نيازمند به استفاده از اسكريپت هايسمت سرور هستيم.
خوب تا به اينجا ما به معرفي مقدماتي از Php پرداختيم ولي چونشخصا مايل نيستم كه اين سري از مقالات به مقدمات اين زبان قدرتمند بپردازند پس ازمقدمات به يك باره خارج مي شويم و مطالعه و تحقيق بيشتر را به خود شما مي سپاريم( كه البته با يك search كوچك در گوگل مي توانيد صدها مقاله كه بصورت جامع به معرفياين زبان پرداختند چه به زبان انگليسي و چه به زبان فارسي بيابيد).
نحوة نصب وپيكر بندي php :
براي نصب و پيكربندي اين زبان شما نياز به يك نرم افزار وبسرور مثل apache و يا iis داريد كه البته من apache را توصيه مي كنم نحوةْ نصب ايننرم افزارها و پيكر بندي آن ها از حوصلة اين نوشتار خارج است و اين مهم را نيز برعهده خود شما مي گزاريم ولي بعد از نصب يك وب سرور شما بايد خود نرم افزار php رااز اينترنت پايين گذاري(download ) كنيد كه براي اين امر مي توانيد از آدرس زيراستفاده كنيد:
www.php.net (http://pnu-club.com/redirector.php?url=http%3A%2F%2Fwww.php.net%2F)
بعد از دانلود اين نرم افزار شما بايد يك پايگاهداده اي سازگار با اين نرم افزار را هم دانلود كرده و نصب كنيد براي اين منظورپايگاه دادهاي mysql بسيار مناسب است نحوة پيكربندي اين نرم افزارها زياد سخت نيستدر همان سايت هاي ارائه دهنده مستندات زيادي در اين ضمينه وجود دارد و همچنين رويسايت ها و وبلاگهاي فارسي پس با اجازه دوستان من از تكرار اين مطا لب تكراري پرهيزكنم و فقط اكتفا كنم به نصب php و mysql بر روي linux RedHat9.
Php و mySql بهصورت آماده همراه سي دي هاي ردهت وجوددارند فقط شما بايد در هنگام نصب اين سيستمعامل گزينه وب سرور را در بخش اضافه و حذف نمودن بسته ها (packet ) ها تيك بزنيدويا بعد از نصب سي دي شماره يك redhat را در سي دي رام قرار دهيد و بعد از مشاهدهمنوي حذف و اضافه بسته هاي نرم افزاري در قسمت وب سرور تيك مربوطه را علامت بزنيد.
بعد از نصب يك با محيط گرافيكي (X ) را با زدن همزمان دكمه هاي alt+ctrl+backspace راه اندازي كنيد (هر چند كه نيازي هم به اين كار نيست) و بعد بااكانت root وارد سيستم شويد توجه داشته باشيد كه در مرحله قبل هم شما بايد بااكانتي با سطح دسترسي مدير وارد سيستم مي شديد تا قادر به انجام عمليات نصب وب سرورمي شديد بعد از اين كه وارد سيستم شديد يك ترمينال به شل سيستم باز كنيد و اينفرمان ها را در ان تايپ كنيد:
chkconfig --level 35 httpd on
chkconfig --level 35 mysqld on
اين فرامين ترتيبي مي دهند كه بعد از هر بار راه اندازيسيستم دايمون هاي وب سرور و mysql سرور به صورت خودكار در سطح شل و محيط گرافيكياجرا شوند.
خوب اين بار واقعا نيازمند اين هستيد كه سيستم را يك بار راه اندازيكنيد پس اين كار را انجام دهيد و بعد از آن براي اين كه تست كنيم كه وب سرور مادرست كار مي كند مرورگر موزيلا را بار كرده و در قسمت آدرس آن تايپ كنيد localhost يا 127.0.0.1 كه در هر صورت در صورت پيكربندي صحيح آپاچي بايد صفحة با عنوان test page را مشاهده كنيد براي تست mysql هم در شل تايپ كنيد mysqlshow كه در اين صورتبايد يك سري اطلاعات در اختيارتان قرار دهد اگر همه چيز درست پيش رفته باشد شماالان مي توانيد كه اسناد(document) HTMLو php خود را در آدرس /var/www/html قرارداده وبا آي پي localhost و بعد نام آن صفحه در مرورگر موزيلا صفحه خود را ببينيد وتست كنيد.
اولين برنامه php :
در يك سند متني ساده اين دستورات را تايپكنيد:
كد:
<html>
<?php
echo "this is a test";
?>
</html>
كد بالا را با پسوند html ذخيره كنيد و اگر از لينوكساستفاده مي كنيد آن را در آدرس بالا قرار داده وبعد با موزيلا براي ديدن ان بصورتزير در قسمت آدرس بار صفحه خود را صدا بزنيد:localhost/your file name.php و براي iis بايد فايل را در پوشه inetpub/wwwroot قرار داده و بعد به صورت بالا در اينترنتاكسپلور فايل خود را صدا زده و نتيجه كار را مشاهده كنيد.
براي درس اول به نظرمقدمات كافي باشد در درس آينده به اصول برنامه نويسي php خواهيم پرداخت
نصب PHP تحت Windows به چند روش
نصب PHP تحت Windows...
در اين مقاله به نصب PHP تحت سيستم عامل Windows و بر روي Web Server استاندارد IIS مي پردازيم ...
نويسنده: سهيل صادقزاده
mailto:Clash_IDOL@hotail.com
با سلام خدمت شما دوستان و علاقهمندان طراحي و برنامهنويسي تحت Web ...
در اين مقاله من سعي دارم روش نصب ساده و مختصر مفسر زبان PHP را توضيح دهم و نوآموزان و دوستاني كه علاقهمند به آشنايي با اين زبان قدرتمند هستند به راحتي بتوانند مفسّر آنرا بر روي Web Server شخصي خود نصب كنند. در اين نسخه از مقاله به نصب PHP تحت سيستم عامل Windows خواهيم پرداخت و در نسخه بعدي روش نصب بر روي سيستم عامل Linux را توضيح خواهم داد.
ما در اين دو مقاله به نصب استاندارد PHP بر روي WebServerهاي پيش فرض خواهيم پرداخت و براي نيل به اين منظور بر روي سيستم عامل Windows از IIS و تحت سيستم عامل Linux از Apache استفاده ميكنيم. گرچه خيلي از علاقهمندان Slackware پيشنهاد ميكنند كه حتّي بر روي سيستم عامل ويندوز از Apache استفاده شود بنده به هيچ وجه اين مسئله رو براي تازه كاران پيشنهاد نميكنم. بدون شك نميتوان از قدرت اين Server حتّي تحت سيستم عامل MS Windows چشم پوشي كرد ولي براي كاربران معمولي و همچنين طراحان حرفهاي اي كه سعي در ارتقاء Solutionهاي خود دارند استفاده كردن از استانداردها بسيار مناسبتر خواهد بود. شايد در مقاله مفصّلي درباره اين مزيتها و معايب مجالي براي صحبت بود. بنابراين در مقاله حاضر تحت سيستم عامل ويندوز به نصب PHP بر روي IIS و Personal Web Managerخواهيم پرداخت.
PHP چيست و چگونه كار ميكند؟
PHP مخفّف Hypertext Preprocessor يك زبان Scripting و Server-Side مي باشد. يك Script به كدي از برنامه ميگويند كه بصورت ابتدايي Compile نميشود و فقط در صورت فراخواني و يا درخواستي براي اجرا توسط مفسّر زبان مورد نظر ترجمه مي شود و به خروجي فرستاده مي شود. اين به اين معني ميباشد كه شما دقيقاً كد برنامه خود را در جاي مورد نياز به كار ميبريد و رابط اجرايي برنامه آنرا به مفسّر مورد نظر ارجاء ميدارد. درباره مثال ما مفسّر مذكور مفسّر PHP يا برنامه PHP.exe مي باشد و رابط اجرايي Web Server مورد نظر و در اينجا Internet Information Service (IIS) است. براي اينكه بتوانيد Scriptهاي PHP خود را اجرا كنيد نياز به نصب مفسّر PHP بر روي Web Server خود داريد. توجّه كنيد كه اين مفسّر بر روي Web Server شما نصب خواهد شد. شما ميتوانيد به PHP.exe مانند يك Plug-in يا Add-on نگاه كنيد چرا كه روش كار هر دو به يك صورت ميباشد. بعد از نصب مفسّر PHP شما قادر خواهيد بود كه از كدهاي PHP به همراه كدهاي HTML خود در صفحات Web استفاده كنيد و همچنين ميتوانيد Scriptهاي صرفاً PHP خود را به عنوان ترمينالهاي تفسير كننده داده ها و رابطهاي ورودي و خروجي بر روي سرور خود قرار دهيد. اكنون به روش نصب PHP تحت Windows توجه كنيد.
روش نصب ...
دور خيز ...
همانطور كه گفتيم شما مفسّر PHP را بر روي Web Serverخود نصب خواهيد كرد. تحت سيستم عامل Windows اعم از هستههاي 9X و يا NT شما اين قابليت را داريد كه از Web Serverهاي اختراع Microsoft يعني IIS يا Personal Web Manager استفاده كنيد. همچنين ميتوانيد از هر دوي اين نرمافزارها در كنار يكديگر استفاده نماييد. اگر هنوز Web Serverي بر روي سيستم خود نصب نكردهايد بايد قبل از شروع پروسه نصب PHP اين كار را انجام دهيد. براي نصب به CD-ROM و يا پكيج اصلي ويندوز مورد استفاده خود نياز داريد و از بخش Add/Remove Programs در Control Panel مي توانيد IIS را در قسمت Windows Components بيابيد. بعد از نصب حتماً بايد يكبار سيستم خود را Restart كنيد تا Socketها و Portهاي مورد نياز بر روي OSشما براي سرويس دهنده Implement شوند. بعد از راه اندازي مجدّد بايد از صحّت عملكرد Web Server خود اطمينان حاصل كنيد. براي اينكار در پنجرهاي از Browser خود، Internet Explorer و يا NetscapeNavigator آدرس http://localhost و يا http://127.0.0.1 را امتحان كنيد، اگر Browser شما صفحه خوش آمد گويي IIS را نمايش داد Web Server شما به سلامت مشغول كار است. براي دسترسي به تنظيمات IIS مي توانيد به بخش Administrative Tools در ControlPanel مراجعه كنيد و از آنجا Internet Information Service Consol را اجرا نماييد. بصورت پيش فرض مسير اصلي و قابل خواندن IIS در X:\inetpub\wwwroot قرار دارد. شما ميتوانيد صفحات خود را در اينجا قرار دهيد و همچنين از كنسول تنظيمات IIS اين آدرس را تغيير دهيد و يا Virtual Directoryهاي ديگري به آن بيافزاييد. در ادامه به نصب PHP ميپردازيم.