آيا شما هم جز آن دسته از افرادی هستيد که هنگام کدنویسی PHP، همواره از دابل کوتيشن برای مشخص کردن يک رشته کاراکتر استفاده می کنيد؟!
به نظر می رسه اکثر مثالها و نمونه هايی که حتی در راهنمای PHP وجود داره تمايل زيادی به استفاده از دابل کوت رو نشون میده. اگرچه راه دومی هم وجود داره که به مراتب بهتر از قبلی هم هست و اون استفاده از کوتيشن يا (Single Quote) به جای Double Quoteهاست. برای مثال به جای:
|
<?php |
ميتوان از:
|
<?php |
استفاده کرد. خوب حتما اين تو ذهنتون شکل گرفته که «چه فرقی داره؟»
پاسخ اينه که در مثال بالا هيچ تفاوتی وجود نداره اما به مثال زير توجه کنيد:
ميخواهيم يه تکه کد
|
<?php |
و اگر از کوتیشن استفاده کنیم.
|
<?php |
همونطور که می بينيد اگر رشته کاراکتر، حاوی کاراکتر (") باشه بايد اون رو با کاراکتر بک اسلش (\) اسکيپ کنيم تا
دليل بعدی اينکه راه دوم پرفورمنس بالاتری داره! استفاده از کوتيشن همواره سريعتر از دابل کوتيشن هست و در برخی موارد اين تفاوت چند صد درصد ميشه!
با نگاهی به Benchmark زیر فکر کنم همه چیز روشن بشه.
|
double (") vs. single (') quotes |
نتيجه: توی رشته کاراکترهایی که در " قرار میدید، از کاراکتر $ به تنهایی استفاده نکنید، مگر اینکه بخواهید مقدار یک متغیر را جانشین کنید و اگر هم خواستید این کار رو انجام بدید بهتره اون رو با یک بک اسلش اسکیپ کنید.
وقتی از کاراکترهای خاصی نظیر
|
<?php |
با اين تفاسير ميشه گفت:
۱» اگر متغيری داخل رشته کاراکتر نيست که بخواهيد مقدارش جانشين بشه از کوتيشن استفاده کنيد.
۲» اگر متغيری داخل رشته کاراکتر باشه افزودن {} باعث سرعت عملکرد ميشه.(*)
|
<?php |
۳» بجای دستور
(*) دو جا هست که آکولادها به کار ما ميان؛ اولا وقتی که بخواهيم يک سری کاراکتر درست چسبيده به نام متغير رو نمايش بديم و مورد بعدی وقتی عبارتی که ميخواهيم درون رشته کاراکتر جای بديم يک متغير ساده نباشه(مثلا یک آرایه دوبعدی یا خروجی متد یک آبجکت یا Property اون آبجکت باشه)
برای مثال:
|
<?php |
مشکل از اونجا ناشی ميشه که مفسر وقتی داخل یه رشته کاراکتر به $ برخورد کنه، تا رسيدن به فاصله خالی شروع به جمع آوری کاراکترها ميکنه و نام متغير رو تشخیص ميده و اگر قبلا مقدار گرفته بود، مقدارش رو جايگزين ميکنه وگرنه مقدار
|
<?php |
- 12- آشنايي با PEAR
- 16- MD5 چيست؟
- 18- ساخت ورودی تاریخ
- 22- توسعهء PHP
نمونه كدها
- 12- Login - Logout
- 8- WAMP5
- 2- تقويم جلالی
اگر چه در آموزشهاي قبلي نصب php بيان شده بود اما از آنجا كه اين روش نصب متفاوت است مجددا روش نصب را ارائه مي دهيم.
1 – كل پوشه محتويات فايل را در درايو C ( فرض درايو ويندوز = C ) كپي كنيد.
2 – dll هاي پوشه هاي dll ، extensions ، sapi ، php4ts.dll را در C:\windows\system32 كپي كنيد.
3 – فايل PhP.ini-recommended موجود در پوشه php را در شاخه C:\windows كپي كنيد و نام آن را به PHP.ini تغيير دهيد.
4 – تنظيمات زير را در اين فايل انجام دهيد :
Doc_root="C:\inetpub\wwroot"
توجه : حتما بايد قبل از نصب php ، iss را نصب كرده باشيد.
Extensiton_dir="C:\php\ extensions"
Register_global=on
تغييرات را ذخيره نماييد.
5 – بر روي MyComputer كليك راست كرده و گزينه Manage را انتخاب كنيد ، در سمت چپ ISS را يافته و به آدرس زير برويد.
ISS < Website < Properties < ISAPifilter < مشخصات را اينگونه وارد كنيد.
Name : php
Browse : php4isapi.dll
6 – ISS < Website < Default Web Site < properties < home directory < configuration < add
تنظيمات به اين ترتيب است :
Browse : php4isapi.dll
و گزينه ديگر .php باشد.
7 – با كليك راست روي ISS ، آن را Reset ميكنيم.
جهت تست درستي نصب در notepad كدهاي زير را وارد ميكنيم و فايل را با پسوند .php در root ذخيره ميكنيم.
<%
phpinfo();
%>
و آن را اجرا مي كنيم ( يادآوري : http://localhost/[filename].php )
![]() |
نصب آسان PHP به همراه برنامه های جانبی مورد نیاز
نسخه ويژه لينوكس
نسخه ويژه ويندوز
نسخه ويژه Mac OS x
نسخه ويژه Solaris
و

سلام
مدتي هست به دليل برخي از فعاليت ها ، كه انشاا... كم كم نتيجه آنها را خواهيد ديد ، آموزش php را رها كرده ايم. ولي با اين وجود يك سري كد در دست داريم كه سفارش مي كنيم يك بار آنها را اجرا كرده و source هايشان را با دقت مطالعه و بررسي كنيد. اگر تا به حال با ما پيش رفته باشيد و آشنايي با html هم داشته و با زبان هاي برنامه نويسي ديگر دست و پنجه نرم كرده باشيد ، به راحتي از ميان اين كدها خواهيد توانست مطالب جديدي بياموزيد.
اميدواريم به زودي با ادامه آموزش ها در خدمتتان باشيم. دریافت فایل

صدا کردن یک Function به صورت داینامیک
این امکان وجود داره که شما اسم تابع را یک String یا یک متغیر بگذارید. و برای قراخواني از آن استفاده کنید.
مثلا :
<html>
<head>
<title>Function4</title>
</head>
<body>
<?php
function sayHello() //line 7
{
print "hello<br>";
}
$function_holder = "sayHello"; //line 11
$function_holder();
?>
</body>
</html>
در مثال بالا در خط 7 تابع با اسم Sayhello تعریف شده و در خط 11 function_holder یک متغیری تعریف شده با مقدار sayHello . حالا می توان از function_holder با اضافه پرانتزها برای صدا کردن تابع استفاده کرد.
شاید این سوال پیش بیاد که چرا ما باید چنين تعريفي را لازم داشته باشیم. در مثال فوق عملا ما فقط کار خودمان را زیادتر کردیم. ولی در واقع در برخی مواقع لازم داریم که جریان کد را با توجه به مولفه های داخل url یا شرایط برنامه عوض کنیم. یعنی مثلا در شرایطی یک function اجرا شود و در شرایط دیگه function دیگری.
متغیر ها در داخل تابع

توابع (Functions )
توابع ، قلب یک کد درست طراحی شده است و باعث می شوند کدها خواناتر شوند و بتوان دوباره از آنها استفاده نمود. هیچ پروژه بزرگی بدون استفاده از تابع نمی تواند انجام شود.
تابع چیست ؟
شما می توانید تابع را یک ماشین در نظر بگیرید. یک ماشین مواد اولیه را از شما می گیرد و بر روی آنها عملیات از پیش تعیین شده را انجام می دهد و در نهایت به شما محصولی را می دهد. تابع مقادیر را از شما دریافت می کند ، بر روی آنها عملیات انجام می دهد و در نهایت کاری که می خواهید با آن انجام می دهد و نتیجه را برای شما بر می گرداند.
تابع در خود کدهایی را جای می دهد که شما هر وقت به آن نیاز دارید آن تابع را صدا می کنید مقادیر اولیه را به آن می دهید و تابع جواب را برای شما برمی گرداند.
فراخوانی تابع
دو مدل تابع وجود دارد. اولی توابعی هستند که درون خود php هستند و دیگری توابعی است که شما می نویسید.
یکی از ابتدایی ترین توابعی که در خود php هستند تابع print است.
print("Hello Web");
در جلو تمامی توابع حتما باید () پرانتزها باشند ، البته print یک استثنا است که بدون پرانتز هم کار ی کند.
print("Hello Web");
and
print "Hello Web";
هر دو دستور بالا یک خروجی را می دهند ولی این مورد فقط در دستور print عملی است.
در مثال بالا ما تابع print را صدا کردیم و مقدار "hello word" را برای آن فرستادیم. حالا تابع وارد عمل می شود و این جمله را چاپ می کند. تابع شامل دو بخش است. اولی نام تابع Print در اینجا و دیگری مقادیری که برای تابع می فرستیم. argument همان که در داخل پرانتز جلوی تابع آمده است. برخی توابع نیاز به چند Argument دارند که آنها را با کاما ، جدا می کنیم. مثلا :
some_function( $an_argument, $another_argument );
بسیاری از توابع در راستای عملی که انجام می دهند اطلاعاتی برای شما بر می گرداند. مثلا در صورت درست بودن یا نبودن True یا Falseبر می گردانند.
ABS() مثلا ، یک عدد را می گیرد و قدر مطلق آن را بر می گرداند.
<html>
<head>
<title>PHP 15</title>
</head>
<body>
<?php
$num = − 321;
$newnum = abs( $num );
print $newnum; // prints "321"
?>
</body>
</html>
در این مثال ما عدد 321 - را به num$ دادیم. این مقدار را به تابع abs فرستادیم در آنجا محاسبات لازم انجام شد و جواب برگردانده شد ، که ما آنرا در داخل $newnum ریختیم و آن را چاپ کردیم. البته ما می توانستیم کد را کمی جمع و جور تر بنویسیم و مستقیما عدد را به abs بدهیم و همانجا چاپ کنیم.
print( abs( − 321 ) );
این یک خط کد همان کاری را می کند که در مثال قبل انجام دادیم. قوانین استفاده از توابعی که خودمان می نویسیم هم به همین شکل است.

استفاده از آرايه :
يك آرايه مي تواند شامل مجموعه اي از رشته ها و يا آرايه هاي ديگر باشد.
انديس اولين آرايه صفر است. مثالي از تعريف يك آرايه :
$List = array ( apples , bananas );
براي مشخص كردن انديس يك اينگونه تعريف مي كنيم :
$List = array ( 1=>apples , 2=>bananas );
نكته : انديس ها لزومي ندارد كه تنها اعداد باشند ، به مثال زير توجه كنيد :
$user = array (name=>"Asef",job=>"Programming",age=>24, "skill"=>"everyThing");
Print ("$user[name]"); // چاپ مقاديرPrint ("$user[job]"); // چاپ مقادير
$user[name]="azemati"; // مقداردهي جديد$user[job]="webmaster"; // مقداردهي جديد
براي چاپ آرايه اگر از تابع print() استفاده كنيم ، فقط باعث چاپ Array مي شود.
براي مشخص كردن طول يك آرايه مي توان از تابع count() استفاده كرد.
$HowManyElements = count ( $list );
براي پيوند زدن دو آرايه مي توان از عملگر . استفاده كرد. البته علاوه بر اين تابع زير نيز موجود است.
$NewArray = array_merge ( $OneArray , $TwoArray );
براي دسترسي به عناصر آرايه كافيست از انديس هر عنصر استفاده كنيم.

كار كردن با فرم ها
خوب در اين قسمت در ادامه درس قبلي مي خواهيم كار با فايل ها را به گونه اي ديگر و با مثال هايي متفاوت بيان كنيم و به بررسي چگونگي ارسال مطالب بين صفحات بپردازيم. ( هدف بيان مثال مي باشد. ) خوب يك مثال ساده ولي پركاربرد :
#this page name is a.php
<form action="b.php" method="get">
<input type="text" name="user">
<input type="submit" name="btn">
</form>
قصد داريم اطلاعات يك تكست باكس را كه در اين صفحه قرار دارد توسط صفحه دوم به اسم b.php بخوانيم. پس اسم اين صفحه را كه هيچ كد پي اچ پي در آن استفاده نكرده ايم a.php مي گداريم و ذخيره مي كنيم.
حالا به صفحه دوم مي رسيم ، اين كد ررا درصفحه دوم قرار بدهيد .
<?php
print "$user"
?>
خيلي ساده و به اين صورت اطلاعات را مي گيريم user اسم تكست باكسي هست كه در فرم اول قرار داشت. بقيه كد ها هم html هست و نيازي به توضيح نيست.
تركيب كردن PHP با HTML :

PHP و فرم هاي HTML
چون برنامه هايي كه ما مي نويسيم روي سرور هستند و به درخواست كاربر اجرا مي شوند در اين قسمت به فرم ها (كه يك نوع در خواست هستند) مي پردازيم.
فرم چيست ؟ يك صفحه كه يك (چند) دكمه و يا جايي براي ورود اطلاعات دارد مثل جايي كه نام كاربري و كلمه عبور را وارد مي كنيم و يا مثل صفحه اول گوگل كه يك دكمه و يك محل ورود دارد. با فرم ها به دو صورت اطلاعات رو به سمت سرور مي فرستيم. (يا اصطلاحا در خواست مي دهيم(
1- Get
2- Post
ايجاد يك فرم ساده :
در ويرايشگر متن خود كدهاي زير را تايپ كنيد و با پسوند .Html ذخيره كنيد.
<html>
<head>
<title>HTML FROM</title>
</head>
<body>
<form action="HandelForm.php">
First Name <input type=text name="FirstName" size=20><br>
Last Name <input type=text name="LastName" size=40><br>
Email Address <input type=text name="Email" size=60><br>
Comments <textarea name="comments" rows=5 col=40></textarea><br>
<input type = submit name="submit" value="submit!">
</form>
</body>
</html>
براي دريافت اطلاعات از يك فرم توسط PHP ، كدهاي زير را با پسوند .php ذخيره نماييد.
<html>
<head>
<title>HTML Result</title>
<body>
<?php
print ("Your first name is $FirstName.<br>\n");
print ("Your last name is $LastName.<br>\n");
print ("Your email is $Email.<br>\n");
print ("This is what you had to say:<br>\n$Comments<br>\n");
?>
</body>
</html>
با قرار دادن اين متن در سرويس دهنده خود مي توانيد به راحتي برنامه را اجرا كرده و اطلاعات را از يك فرم Html دريافت كنيد.

نكاتي در مورد استفاده از رشته ها
مرتب كردن رشته ها :
تابع trim() به طور خودكار فاصله هاي خالي در ابتدا و انتهاي يك عبارت را حذف مي كند. قالب آن به صورت زير است :
$string=" Extra space before and after text. ";
$string = trim( $string );
اگر شما بخواهيد تنها فاصله هاي خالي ابتدا يا انتهاي يك رشته را برداريد ، مي توانيد از دو دستور Rtrim() ( حذف از انتها ( يا راست متن ) ) و Ltrim() ( حذف از ابتدا ( يا چپ متن ) ) استفاده كنيد.
$string = Ltrim ($string);
$string = Rtrim($string);
پيوند زدن رشته ها :
قبلا مورد بررسي قرار گرفته است ، با استفاده از . دو يا چند رشته را به هم متصل مي كنيم.
$string = $Astring.$Bstring.$Cstring
رمز گذاري و رمزگشايي رشته ها :
اين تابع يك رشته را دريافت مي كند و آن را رمزگذاري مي كند و بعد از تبديل به شكل مناسب آن را به URL اضافه مي كند.
$string = urlencode ( $string );
تابع urldecode() عمل عكس urlencode() را انجام مي دهد. يعني اطلاعات رمزگذاري شده ( * ) را رمزگشايي مي كند و به شكل استاندارد در مي آورد.
پنهان سازي و آشكارسازي داده ها :
اولين تابع براي پنهان سازي داده ها تابع Crypt() مي باشد ، ولي تابعي براي آشكارسازي آن وجود ندارد.
$Data = Crypt ( $Data );
تابع ديگر encrypt() مي باشد كه آشكارساز آن decrypt() مي باشد.

نكاتي در مورد استفاده از اعداد
قالب بندي اعداد :
تابع Printf() بر اساس مشخصات شما قالب بندي مي كند ، كه بايد به آن يك فرمت خاص داده شود. مثال :
Printf ( %01.2f,$Amount);
قسمت %01.2 در اين دستور مشخص مي كند كه به هنگام چاپ متغيير Amount جاي مكانهاي اضافي و خالي 0 قرار گيرد و همچنين حداقل يك رقم در سمت چپ مميز وجود داشته باشد و عدد تا 2 رقم بعد از مميز نمايش داده شود. در PHP تابع ديگري به نام sprintf() وجود دارد كه بسيار شبيه به تابع printf() عمل مي كند. تنها تفاوت اين دو تابع در اين است كه تابع sprintf() تنها مقدار را تغيير مي دهد و آن را به مرورگر كاربر ارسال نمي كند.
تابع round() :
اين تابع همانگونه كه از نام آن نيز مشخص است براي گرد كردن اعداد به كار مي رود. به اين صورت كه اعداد با قسمت اعشاري 5 و يا بيشتر به عدد صحيح بالاتر و اعداد با قسمت اعشاري كمتر از 5 به عدد صحيح پايينتر گرد مي شوند.
$number=round(23.3); #round to 23
$number=round(23.51); #round to 24
تابع Ceil() :
هر عددي را به عدد صحيح بالاتر گرد مي كند.
تابع Floor() :
هر عددي را به عدد صحيح پايين تر گرد مي كند.
تابع abs() :
اين تابع قدرمطلق هر عدد را بر مي گرداند.
$number=abs(-23); #result is 23
2 تابع ديگر در اين قسمت شرح داده مي شوند كه عبارتند از Srand() و Rand(). تابع دوم يك عدد تصادفي را ايجاد مي كند و تابع ديگر قبل از تابع rand() به كار مي رود و ايجاد اعداد تصادفي را تضمين مي كند.
Srand ((double)microtime()*1000000);
$RandomNumber=rand();
ايجاد عدد تصادفي بين يك بازه خاص. مثلا 0 تا 10 :
Srand ((double)microtime()*1000000);
$RandomNumber=rand(0,10);

دستورات كنترلي :
1 -
یکی از دستورات کنترلی دستور if می باشد . که در زیر به توضیح آن می پردازیم. بوسیله if ما می توانیم مسیر حرکت برنامه را کنترل کنیم. حالت کلی آن بصورت زیر است .
if ( شرط) {
دستور یا مجموعه دستورات1
}else{
دستورات2 دستور یا مجموعه
}
در مثال بالا اگر شرط برقرار باشد مجموعه دستورات 1 اجرا می گردند و اگر شرط برقرار نباشد مجموعه دستورات 2. مانند آنچه در حلقه ها گفتیم اگر بجای مجموعه دستورات ، یک دستور داشته باشیم میتوانیم از قرار دادن {} صرفنظر کنیم. می توانیم بخش else را نگذاریم .
if ( شرط) {
دستور یا مجموعه دستورات
}
می توانیم از else if های پشت سر هم استفاده کنیم.
if (شرط1){
دستور یا مجموعه دستورات 1
}else if(شرط2){
دستورات 2 دستور یا مجموعه
}else if(شرط3){
دستور یا مجموعه دستورات 3
}else{
دستور یا مجموعه دستورات 4
}

در اين جلسه می خواهیم در مورد حلقه ها صحبت کنیم. كساني که با برنامه نویسی آشنا هستند می دانند که حلقه ها جزو دستورات مهم بشمار می آیند . و مطمئنا شما هم در برنامه های خود مجبور خواهید شد که از آنها استفاده کنید.
حلقه FOR :
زمانیکه ما میخواهیم یک سری از دستورات را به دفعات مشخص و معینی اجرا کنیم از حلقه for استفاده می کنیم. شکل کلی حلقه for بصورت زیر می باشد.
for (expr1; expr2; expr3){
statement
}
Expr1 = مقدار اوليه
Expr2 = شرط
Expr3 = روند كاهش يا افزايش ( دقيقا مثل C++ است )
این برای حالتی است که عبارت statement یک خط باشد . اما اگر عبارت statement بیش از یک خط باشد حلقه for به یکی از دو صورت زیر نوشته می شود.
for (expr1; expr2; expr3 ){
statement1;
statement2;
statement3;
{
يا
for (expr1; expr2; expr3 )
statement1;
statement2;
statement3;
endfor;
همانطور که مشاهده می کنید تفاوت این دو حالت با حالت اول در این است که ما در دو حالت دوم (یعنی وقتی که دستورات داخل حلقه بیش از یک خط باشد) باید ابتدا و انتهای حلقه را مشخص کنیم. حالا به یک مثال توجه کنید.
نكته :
1 - خروج از حلقه با استفاده از دستور break برای پایان دادن حلقه وجود دارد. گاهی اوقات نیاز است که وقتی کد به شرایط خاصی رسید حلقه پایان یابد.

خوانديم :
متغیر نگهدارنده ویژه ایست برای مقادیر. هر متغیر دارای یک نام است که با علامت $ در اول آن مشخص می شود. نام یک متغیر می تواند شامل حروف ، اعداد و _ باشد. نام یک متغیر نمی تواند شامل space و یا کارکاترهای غیر حرفی باشد. کدهای زیر چند متغیر را تعریف می کنید :
$a;
$a_longish_variable_name;
$2453;
$sleepy;
توجه داشته باشید که ; در انتهای هر خط جزو نام متغیر می باشد و در واقع نشان دهنده پایان جمله کد PHP است. برای مقدار دادن به متغیر کافیست که آن را مساوی با مقدارش قرار دهید. به طور معمول شما در یک دستور php متغیر را تعریف می کنید و به آن مقدار می دهید. مانند کدهای زیر :
$num1 = 8;
$num2 = 23;
وقتی که شما به یک متغیر مقدار دادید می توانید دقیقا مانند یک کاراکتر با آن رفتار کنید. به طور مثال :
print $num1;
دقیقا برابر با دستور
print 8;
می باشد.
نوع داده داخل متغیر DATA TYPE
انواع مختلف اطلاعات در یک متغیر می تواند ذخیره شود که در طول برنامه می توانید رفتارهای متفاوتی با آن نماييد. برخی زبانهای برنامه نویسی شما را وادار می کنند که در ابتدا و در موقع تعریف متغیر نوع آن را نیز مشخص نمایید. ولی در PHP لزومی به این کار نیست و نوع اولین مقداری که وارد متغیر شود ، به عنوان نوع متغیر شناخته می شود. جدول فوق انواع داده ها را نشان می دهد.
شما می توانید از دستور gettyoe() برای مشاهده نوع یک متغیر استفاده کنید. به عنوان مثال :
<html>
<head>
<title>Type of a variable</title>
</head>
<body>
<?php
$testing = 5;
print gettype( $testing ); // integer
print "<br>";
$testing = "five";
print gettype( $testing ); // string
print("<br>");
$testing = 5.0;
print gettype( $testing ); // double
print("<br>");
$testing = true;
print gettype( $testing ); // Boolean
print "<br>";
?>
</body>
</html>
کدهای بالا در خروجی جملات زیر را نشان خواهد داد :
Integer
String
Double
Boolean
Integer یک عدد صحیح می باشد. به کلام ساده یک عدد بدون ممیز می باشد. String یک سری کاراکتر می باشد. وقتی در PHP با String کار می کنید باید حتما اطراف آن از " و یا ' استفاده شود. Double یک عددی است که ممیز نیز دارد. Boolean یا True است و یا False.
تغییر با استفاده از دستور settype()
در PHP با استفاده از دستور settype() شما می توانید نوع یک متغیر را تغییر دهید. برای این کار باید نام متغیر و نوع متغیر که می خواهید به آن تغییر یابد را در بین پرانتز و با فاصله یک کاما در بینشان مشخص نمایید.
به عنوان مثال :

عملگرها
عمگر رشته ای ( . ) : از این عملگر برای اتصال دو رشته به یکدیگر استفاده می شود.
مثال :
$a="Hello";
$b="World" ;
$c=$a . $b ;
echo($c); // write Hello world
?>
نکته : برخی عمگرها حالتی به نام تند نویس دارند که بصورت زیر می باشد.
$a=$a.$b تند نویس -----> $a .= $b;
عملگرهای عددی
|
+ |
عملگر جمع |
دوعملوند دارد |
|
- |
عملگر تفریق |
دوعملوند دارد |
|
* |
عملگر ضرب |
دوعملوند دارد |
|
/ |
عملگر تقسیم |
دوعملوند دارد |
|
٪ |
عملگر mod باقیمانده صحیح |
دوعملوند دارد |
|
++ |
افزایش متغیر به اندازه یک واحد افزایش میدهد |
یک عملوند دارد |
|
-- |
کاهش متغیر به اندازه یک واحد کاهش میدهد |
یک عملوند دارد |
عمگرهای که دو عملوند دارند را می توان بصورت تند نویسی نوشت.
عملگرهای بیتی : این عملگرها بر روی رشته ای از بیت ها اعمال می شود.
|
& |
AND منطقی |
|
| |
OR منطقی |
|
^ |
XOR منطقی |
|
~ |
NOT منطقی |
|
<< |
Left Shift منطقی |
|
>> |
Right Shift منطقی |
عملگرهای مقایسه ای : این عملگرها برای مقایسه استفاده می شود که یک مقدار بولی را نتیجه می دهد.
|
< |
کوچکتر |
|
<= |
کوچکتر مساوی |
|
> |
بزرگتر |
|
>= |
بزرگتر مساوی |
|
== |
مساوی |
|
!= |
نا مساوی |
عملگرهای منطقی : این عملگرها برای تست شرایط بولین به کار می رود.
|
&& |
ََAND وقتی که هر دو عملوند True باشد جواب True می شود. |
|
|| |
OR وقتی که حدقل یکی از عملوندها True باشد جواب True می شود. |
|
! |
NOT اگر عملوند True باشد False می شود و بالعکس. |
عملگر ( ؟ ) : این عملگر که یک عملگر سه تایی می باشد در صورت درست بودن عبارت 1 عبارت 2 محاسبه می شود درغیر اینصورت عبارت 3 محاسبه می شود.
عبارت 1 ? عبارت2 : عبارت3 ;
مثال :
echo( $a ? "True" :"False");
اگر متغیر a برابر TRUE باشد در خروجی True چاپ می شود و اگر False باشد در خروجی False چاپ می شود.
تقدم عملگرها
عبارت روبرو را درنظر بگیرد $a=5+3*2 مقدار a چیست. اگر ابتدا 3+5 را محاسبه و سپس در 2 ضرب کنیم جواب 16 می شود ولی اگر ابتدا 2*3 را محاسبه و سپس با 5 جمع کنیم جواب 11 می شود. راه حل این مشکل تقدم عملگرها می باشد ، یعنی در یک عبارت ابتدا عملگرهایی که اولویت بالاتری دارند محاسبه می شوند و سپس اولویت های دیگر ارزشیابی می شوند. برای بر هم زدن این این حق تقدم از پرانتز استفاده می کنیم . وقتی که چند عملگر با اولویت یکسان داشته باشیم ابتدا از چپ به راست محاسبه می شود.
اولویت عملگرها به صورت زیر می باشد.
|
() |
۱ |
|
++ , -- , ~ , ! , تبدیل نوع |
۲ |
|
* , / , % |
۳ |
|
+ , - |
۴ |
|
< , <= , > , >= |
۵ |
|
== , != |
۶ |
|
& |
۷ |
|
^ |
۸ |
|
| |
۹ |
|
&& |
۱۰ |
|
? |
۱۱ |

در این جلسه قصد داریم ساختار های اساسی PHP را يك بار ديگر بررسی کنیم و مروري بر برخي از مطالب گذشته داشته باشيم.
عبارات
دو نوع عبارت در php وجود دارد ، تک خطی و چند خطی . عبارت تک خطی باید به سمی کالو ن ( ; ) ختم شوند ، مگر اینکه آخرین دستور درون جداسازها باشد.
متغیرها
در PHP نیازی نیست تا متغیرها را پیش از استفاده تعریف کنید یا اینکه مشخص کنید قصد دارید چه نوع داده ای در متغیر ها ذخیره کنید ، PHP این قابلیت را دارد که در یک متغیر در طول برنامه انواع مختلفی را ذخیره کنیم. نام متغیرها در php با یک علامت $ در ابتدای آن مشخص می شود و می تواند شامل حروف ، اعداد و کارکتر ( _ ) باشد ، هرچند که اولین کارکتر باید حرف باشد. موضوع دیگری که باید مورد توجه قرار دهید این است كه php نسبت به بزرگ و کوچک بودن حروف حساس است مثلا موارد زیر متغیرهای مختلفی اشاره می کند:
$MY_WBLOG
$my_weblog
$My_Weblog
برای مقدار دهی به یک متغیر از علامت = استفاده می کنیم .
مثال :
$ymvar= 10;
متغیر های رشته ای :
رشته ها را می توان با استفاده از کوتیشن دوبل (") یا کوتیشن تکی( ' ) مشخص کرد.
مثال :
$str1="Hello";
$str2=' Hello ';
echo('Hello'); // write hello
echo("Hello"); // write hello
نکته : تابع echo برای چاپ یک مقدار در خروجی می باشد.
هنگامی که از دابل کوتیشن استفاده می كنیم php به دنبال متغیرها می گردد و مقادیر آنها را درون رشته جایگزین مي كند و به علاوه دنبال کارکترهای کنترلی که با بک اسلش (\) شروع می شود ، مي گردد. عملکرد کارکترهای کنترلی دقیقا شبیه زبان C می باشد این کاکترها طبق جدول زیر می باشد :
|
کارکتر کنترلی |
عملیات |
|
\n |
سطرجدید(LF) |
|
\r |
سطر(CR) |
|
\t |
چاپ Tab |
|
\\ |
چاپ کارکتر \ |
|
\$ |
چاپ کارکتر $ |
|
\" |
چاپ کوتیشن دوبل |
مثال :
<?php
echo("This weblog \" ComputerUnion.blogfa.com \" is for you ");
?>
خروجی >>>>> This weblog " AliRezaOnline.blogfa.com " is for you
توجه :ممکن است که مرورگرها کارکترهای \n , \r , \t را درنظر نگرید در اين صورت باید از تگ های HTML استفاده کنید.
متغیرهای عددی:

نسبت دادن مقادير به متغييرها
در PHP شما به اعلان ( declare ) متغييرها احتياج نداريد. همچنين نوع يك متغيير در هنگام عمل انتساب مشخص مي شود. در PHP براي نسبت دادن يك مقدار به يك متغيير و ذخيره آن مقدار از علامت مساوي ( = ) استفاده مي كنيد. در اين هنگام اين علامت با نام عملگر انتساب ( assignment Operator ) خوانده مي شود. مثال :
$number = 1;
$floating-number = 1.2;
$string = "Hello world!";
نكته : در PHP نيز همانند Java Script نوع متغيير در طول برنامه مي تواند تغيير كند.
متغييرهاي از پيش تعريف شده
متغييرهاي از پيش تعريف شده ( Predefined Variables ) انواع خاصي از متغيير ها هستند كه در يكي از برنامه هاي زير به كار گرفته مي شوند :
برنامه هاي كاربردي سرويس دهنده وب ( web server applications (مانند Apache )
سيستم عاملهاي سرويس دهنده وب ( web server operating system ( مانند windows NT و يا Solaris ) و يا در خود مدل PHP.
در دو دسته اول اين متغيير ها به متغييرهاي محيطي ( variables environmental ) معروفند .
متغييرهاي از پيش تعريف شده در سرويس دهنده هاي مختلف ممكن است داراي تفاوتهايي باشند . بنابراين براي مشاهده اين متغييرها بهتر است از تابع Phpinfo() كه در درسهاي قبلي توضيح داده ام استفاده كنيد.
دو دليل براي آشنايي شما با مفهوم متغييرهاي از پيش تعريف شده وجود دارد. دليل اول اينست كه اين متغييرها در برنامه نويسي شما كاربرد خواهند داشت و دليل ديگر آنكه با شناخت اين متغييرها شما ديگر به صورت تصادفي نام يك متغيير را هم نام با اين متغييرها انتخاب نمي كنيد.
نمونه هايي از متغييرهاي محيطي سرويس دهنده عبارتند از: Hostname ( نامي كه سرويس دهنده به خود نسبت داده است ) و Ostype ( سيستم عاملي كه بر روي سرويس دهنده در حال اجراء مي باشد. )
نمونه هاي از متغيير هاي محيطي Apache عبارتند از: Document_Root ( مكان ذخيره فايل ها بر روي سرويس دهنده ) و HTTP_USER_AGENT ( جزئياتي در مورد مرورگر و Platform كاربر را ارائه مي دهد ).
متغيير PHP-SELF پر كاربردترين متغيير PHP مي باشد كه نام صفحه جاري را در خود ذخيره كرده است .
نكته : اگر شما متغييرهاي خود را هم نام با متغييرهاي محيطي سيستم نامگذاري كنيد. نتايجي عجيب و منحصر به فردي حاصل مي شوند. هر چند احتمال انجام اين كار اندك مي باشد. با اين وجود بهتر است ليستي از متغيير هاي محيطي سيستم را در هنگام نامگذاري متغييرها در برابر خود داشته باشيد.

امروز مي خواهيم در مورد انواع متغيير ها و چگونگي به كار بردن متغيير ها و آرايه ها در يك اسكريپت PHP صحبت كنيم.
براي تبديل صفحات ساده و ثابت به برنامه هاي ديناميك و سايت هاي جذاب در ابتدا شما احتياج به اين خواهيد داشت كه بتوانيد اطلاعات را در اختيار بگيريد. متغيير ها همان ابزاري هستند كه شما با استفاده از آن ها مي توانيد اطلاعات را در اختيار بگيريد و آنها را در دسترس خود قرار دهيد. متغيير ها يكي از مهمترين ابزارها و مفاهيم هر زبان برنامه نويسي محسوب مي شوند.
در اينجا سه دسته مختلف از انواع متغيير ها را توضيح مي دهيم و در ادامه به توضيح ساير موارد مي پردازيم.
1) اعداد ( numbers )
2) رشته ها ( String)
3) آرايه ها ( arrays)
دسته اول شامل دو نوع متغيير است:
1 ) اعداد صحيح ( integers)
2 ) اعداد اعشاري ( floating – point ) ( همچنين اعداد اعشاري با دقت مضاعف double )
اما از آنجايي كه تفاوت چنداني در چگونگي به كار بردن اين دونوع متغيير وجود ندارد ، اين دو را در يك دسته قرار مي دهيم.
PHP همچنين داراي يك نوع متغيير به نام شي ( object ) مي باشد.
اعداد :
نكته : اعداد به صورت اعشاري ( همراه با مميز ) و يا اعدا كسري از نوع متغييرهاي اعشاري محسوب مي شوند. براي مثال (1.0) در PHP يك عدد اعشاري به حساب مي آيد. توجه كنيد كه در PHP اعداد به صورت كسري ذخيره نمي شوند بلكه معادل اعشاري خود تبديل شده و سپس ذخيره مي شوند.
مثالهايي از اعداد صحيح معتبر: 1- ، 356 ، 768 ، ...
مثالهاي از اعداد اعشاري : 1.3 ، 56.9 ، ...
همچنين مثالهاي كه در دسته اعداد قرار نمي گيرند: 11/3 ، 34a ، 23.34.2 ، ...
رشته ها :
يك متغيير از نوع رشته اي ( String ) از تركيب هر نوع كاركتري ( حروف - اعداد - علائم و جاي خالي ) مي تواند ساخته شود. اما اين كاركترها بايد در داخل يكي از علامتهاي Single (' ') Quotation و يا ( " " ) Double Quotation قرار گيرند.
مثال:
" hello world ! "
" hello first name ! "
" 11 / 2 "
نكته : اگر عدد نيز در داخل Quotation قرار گيرد به عنوان يك داده رشته اي در نظر گرفته مي شود.
مثالهاي از داده هاي رشته اي غير مجاز :
hello world!
how are you" " "I Said" "
توجه!!! شايد اين سوال در ذهن شما به وجود بياد كه چطوري مي توانيم يك علامت " را به مرور گر ارسال كنيم؟ ما مي تونيم اين مشكل را در PHP به اين صورت رفع كنيم كه قبل از علامت quotation از علامت (\) استفاده كنيم.
پس وقتي ما در دستور print() اين عبارت ( "I Said, \"How are You?\"" ) را تايپ كنيم خروجي اين دستور به صورت ( I Said, "How are You?" ) خواهيد ديد.
بنابراين هر چند كه گفته شد در داده رشته اي هر تركيبي از كاراكترها به كار مي رود. بايد توجه داشته باشيد كه در مورد كاراكترهاي ويژه بايد دقت خاصي اعمال شود. كاراكترهاي ويژه ديگري نيز وجود دارند كه هنگام استفاده از آنها در يك داده رشته اي بايد علامت backslash (\) قبل از آنها قرار دهيم.
اين كاراكتر ها عبارت است از:
Single quotation ( ' )
Apostrophe
Backslash
Dollar $
نكات :
- مزيت استفاده از double quotes به جاي single quotes در اين است كه در حالت دوم اگر متغييري داخل داده رشته اي خود به كار ببريد نام متغيير به عنوان جزئي از داده در نظر گرفته مي شود و مقدار آن متغيير جايگزين نام آن نمي شود.
- در درسهاي قبلي اشاره شد كه در تركيب \n براي مثال در تابع print() باعث ايجاد خط جديد مي شود. بنابراين مشاهده مي كنيد كه در اين حالت خاص علامت backslash باعث در نظر گرفتن n به صورت يك كاراكتر معمولي نشد. از موارد خاص ديگر مي توان به تركيب \r ( بازگشت خطي (carriage return) ) و \t ( براي قرار دادن يك tab ) اشاره كرد.
آرايه ها :
از آنجايي كه آرايه ها كمي پيچيده تر از داده هاي عددي و رشته اي به حساب مي آيند. در اين قسمت تنها مختصري در مورد آنها توضيح داده مي شود و در آينده با كاربرد هاي آن بيشتر آشنا خواهيم شد.
بر خلاف داده هاي عددي و رشته اي كه تنها مي توانند داراي يك ارزش و يا مقدار باشند. آرايه ها مي توانند حاوي ليستي از مقادير باشند. بنابراين شما مي توانيد مقادير مختلف عددي و يا رشته اي را داخل يك آرايه قرار دهيد. همچنين آرايه ها خود مي توانند شامل ليستي از آرايه ها باشند.
نكته :
- آرايه هاي استاندارد در PHP از مقادير داده اي و يا عددي تشكيل مي شوند. ( اين آرايه ها به آرايه هاي شماره گذاري شده ( indexed ) و يا برداري ( vector ) نيز معروف هستند. )
و اين همان نامي است كه Perl به اين دسته از آرايه ها نسبت مي دهد. در Perl آرايه هايي كه خود از آرايه هايي كه خود از آرايه تشكيل شده باشد ، به نامهاي آرايه هاي hash و associative و multidimensional شناخته مي شوند. در PHP به هر دو دسته ( يك يا چند بعدي ) لفظ « آرايه » اطلاق مي شود.

در درس امروز مي خواهيم در مورد استفاده از فضا هاي خالي در PHP و HTML صحبت كنيم.
اگر كمي با HTML آشنا باشيد حتما مي دانيد كه فضاهاي خالي ( مانند خطهاي خالي و يا كاراكتر جاي خالي ) در متن نوشته شده به اين زبان بدون اينكه تغييري در نمايش صفحه و يا تفسير كدهاي HTML داشته باشد مي توانند در ايجاد ساختار منظم و قابل فهم تر با ما كمك كنند. براي مثال : مي توانيد بين قسمتهاي مجزاي كدهاي خود يك خط خالي قرار دهيد و يا دستوراتي را كه در داخل يك ساختار كنترلي قرار مي گيرند ، از يك ستون مشخص آغاز كنيد. اين سازماندهي متن توسط فضاهاي خالي را مي توانيد هم در كدهاي HTML و هم در كدهاي PHP استفاده كنيد. سازماندهي متن توسط فضاهاي خالي در سه منطقه مجزا اثرات خود را نشان مي دهد.
در مرحله اول در اسكريپهاي PHP ، مرحله بعد در اطلاعات ارسال شده توسط PHP به مرورگر وب ( كه معمولا در قالب HTML مي باشند ) و در آخر نيز در صفحه نمايش داده شده توسط مرورگر وب.
بنابراين براي سازماندهي متن در هر يك از اين سه منطقه بايد به روش هاي متمايزي متوسل شد.
به هنگام اسكريپت نويسي به زبان PHP توجه داشته باشيد كه فضاهاي خالي عموما ( نه هميشه ) در نظر گرفته نمي شوند. تمام خطهاي خالي قرار گرفته شده در اسكريپت PHP تاثيري در نتيجه كار نخواهند داشت. كاراكتر هاي جاي خالي نيز به طور معمول توسط PHP در نظر گرفته نمي شوند.
استفاده از سويچ ( \n ) در PHP :
اين سويچ در تابع Print() مورد استفاده قرار مي گيرد و كار آن ايجاد يك خط جديد در كد HTML فرستاده شده به مرورگر مي باشد. در اين مثال كاربرد سويچ \n در كد PHP و همچنين نتيجه عمل كردن سويچ در قبل و بعد از استفاده از آن را خواهيد ديد.
استفاده از سويچ \n در تابع print() :
<html>
<head>
<title>Script Test</title>
</head>
<body>
<?php
print (" <b><center>Hello World !</center></b>\n");
?>
</body>
</html>
اسكريپت بالا را اجرا كنيد. تغييري كه در استفاده از سويچ \n در كد HTML خروجي ظاهر مي شود به صورت زير است.
<html>
<head>
<title>Script Test</title>
</head>
<body>
<b><center>Hello World !</center></b>
</body>
</html>
ولي اگر از سويچ \n استفاده نشود كد HTML خروجي به صورت زير نمايش داده مي شود.
<html>
<head>
<title>Script Test</title>
</head>
<body>
<b><center>Hello World !</center></b>
</body>
</html>
نكات :
- يكي از مواردي كه PHP فضاهاي خالي را در نظر مي گيرد فضاهاي خالي در تابع print مي باشد. در اين هنگام اين كاراكتر هاي جاي خالي به مرورگر ارسال مي شوند. هر چند در HTML نيز اين فضاها عموما در نظر گرفته نمي شوند.
- براي مشاهده متن ارسال شده به مرورگر خود و مشاهده تفاوت حاصل از قراردادن تركيب \n از ويژگيهاي "View Source" و يا "View page source" در مرورگر خود استفاده كنيد.
افزودن توضيحات به اسكريپت هاي خود : ( comments )
هر برنامه نويس بعد از مدتي متوجه اين مطلب مي شود كه توضيحاتي كه در طول برنامه براي خود ياداشت مي كند ، بسيار در خواناتر شدن و درك دستورات برنامه در مراجعات بعدي موثر واقع مي شوند. اين ياداشتها باعث يادآوري چگونگي عملكرد برنامه شما مي شود. كامپيوتر نيز توضيحات (Comments) را در پردازش برنامه در نظر نمي گيرد.
PHP سه روش را براي افزودن توضيحات به برنامه پشتيباني مي كند. شما مي توانيد با يكي از اين سه روش توضيحات را به اسكريپت خود بي افزاييد.
شما با قرار دادن يكي از علامتهاي // و يا # در ابتداي هر خط مطلب آن خط را به صورت يك توضيح تعريف مي كنيد. همچنين با به كار بردن اين علائم در وسط يك خط عبارت بعد از آنها در آن خط به صورت توضيح در نظر گرفته مي شود.
روش ديگر براي قرار دادن توضيح در اسكريپت PHP استفاده از علامتهاي /* و */ مي باشد. هر تعداد كلمه يا عبارت يا حتي خطهاي متوالي كه بين اين دو علامت قرارگيرد به صورت توضيح در نظر گرفته مي شوند.
مثال :
<?php
/* http://www.ComputerUnion.blogfa.com
This weblog is for
Echo ("Hello"); // write hello
Echo ("World"); # write World
?>
نكات :
- شما با استفاده /* و */ مي توانيد يك و يا چندين خط را به صورت توضيح در آوريد.
- برنامه نويسان مختلف از روشهاي مختلفي براي اضافه كردن توضيحات خود استفاده مي كنند. آنچه مهم است اين است كه شما يك روش را انتخاب كنيد و هميشه از آن استفاده كنيد.
- توجه كنيد كه اگر شما از برچسبهاي <-- و --!> درون اسكريپت PHP خود استفاده كنيد متن بين اين دو برچسب به صورت توضيح در نظر گرفته نمي شوند.
- از آنجايي كه متن توضيح در PHP به مرورگر ارسال نمي شود. برنامه نويس مي تواند توضيحاتي كه تنها خود او از آنها استفاده مي كند را در برچسبها PHP قرار دهد.

در اين آموزش مي خواهيم در مورد چگونگي ارسال متن و كد HTML به يك مرورگر بحث كنيم.
يكي از متداولترين اعمالي كه شما با استفاده از PHP انجام خواهيد داد ارسال اطلاعات به مرورگر به صورت برچسبهاي HTML و يا متن ساده مي باشد. اين عمل در PHP با استفاده از تابع PRINT() صورت مي گيرد.
توضيح : تابع Print() تنها تابعي نيست كه براي ارسال اطلاعات به مرورگر استفاده مي شود.
مثال : براي چاپ يك پيغام ساده ، ابتدا يك فايل جديد در ويرايش گر خود ايجاد كنيد. سپس دستورات زير را در فايل تايپ نموده و فايل را با نام print.php ذخيره كنيد.
print ("Hello World!") ;
?>
بعد از اتمام كار تايپ فايل را با استفاده از مرورگر خود اجرا كنيد.حال شما پيغام Hello Word! را در مرورگر خود مشاهده خواهيد كرد.
پس شما موفق شديد كه يك پيغام را در مرورگر خودتان نمايش دهيد.
نكات:
1- توابع مختلفي براي ارسال متن به مروگر وجود دارند ، كه شامل Echo() و Printf() نيز مي شوند. Echo() در حقيقت همانند Print() عمل مي كند بنابراين به جزئيات بيشتر در مورد آن نمي پردازيم. در مورد تابع printf() در درسهاي بعد توضيح خواهيم داد.
2- شما مي توانيد در مورد تابع print از پرانتز استفاده نكنيد ولي حذف علامتهاي "..." quotation امكان پذير نمي باشد.
براي مثال شما مي توانيد عبارت print "Hello Word!" را تايپ كنيد .
ولي بهتر است كه از پرانتز استفاده كنيد.
3- فراموشي در قرار دادن يكي از علامتهاي quotation و يا پرانتزها و يا علامت semicolon از اشتباهات رايج در استفاده از تابع print() مي باشد. بنابراين به هنگام برخورد با اشكال در مورد اجراي اين دستور در مرحله اول وجود اين علائم را بررسي كنيد.
ارسال Html به مرورگر :
Html در حقيقت براي اعمال ويژگيهاي و جذابيت هاي خاص به يك متن ساده ايجاد شده است. از آنجايي كه HTML براي اعمال اين ويژگيها و جذابيت ها برچسب هايي را بين متن ساده قرار مي دهد شما نيز براي فرستادن يك متن HTML به مرورگر بايد برچسبها را با استفاده از PHP به همراه اطلاعات ديگر ارسال كنيد.
ارسال يك متن + برچسبهاي HTML به مروگر:
ابتدا فايل print.php را در ويرايشگر خود باز كنيد و بجاي عبارت Hello Word! عبارت زير را تايپ كنيد.
حال تغييرات را ذخيره كنيد و اسكريپت خود را با استفاده از مرورگر اجرا كنيد.
نكات :
1- برچسبهاي HTML كه از علامتهاي Quotation استفاده مي كنند. ( مانند Font Color = "#000000" ) در چاپ متن توسط PHP مشكل ايجاد مي كنند! زيرا تابع Print() نيز از اين علائم براي متن ارسالي خود استفاده مي كند. براي رهايي از اين مشكل مي توانيد در تابع print() و يا Echo() از ( ' ' ) استفاده كنيد تا با دابل كوتيشن Html ادغام نشود و ابهام او مشكا ايجاد نكند.
Print ('');

آموزش خود را با اين فرض كه شما HTML را فراگرفته ايد آغاز مي كنيم. ( مي توانيد از لينكهاي آموزشي HTML استفاده كنيد ، سمت چپ وبلاگ )
در اين بخش در مورد شكل كلي ساختار برنامه هاي PHP و روش استفاده از PHP در ميان HTML صحبت مي كنيم و همچنين يك برنامه ساده براي شروع كار را ياد مي گيريم.
براي شروع به آموختن هر زبان برنامه نويسي شما احتياج به اين خواهيد داشت كه با قواعد دستوري ( Syntax ) آن زبان آشنا شويد و اين همان چيزي است كه در اين درس به آن مي پردازيم. دستور زبان PHP از منابعی مختلفی الهام می گیرد از جمله زبان برنامه نویسی C که اگر با زبان C آشنایی داشته باشد با دستور زبان و نحوه برنامه نویسی PHP مشکلی نخواهد داشت.
برنامه های PHP در فایلهای متنی استانداردی ذخیره مي شوند که با هر ویرایشگر استانداردی ایجاد شده اند. طبیعتا فایل ایجاد شده را با پسوند .php ذخیره می کنیم ولی می توانید این تنظیمات را عوض کنیم .
معمولا درون فایلهای php از کدهای html , JavaScript و ... نیز استفاده می شود که هنگام کامپایل فایل موتور php از این کدها صرفنظر می کند. برای اینکه کدهای php قابل تشخیص باشد کدها را درون یک جدا ساز قرار دهیم. این جداسازها به صورت زیر می باشد:
<? كدها ?>
<?php كدها ?>
توجه: هیچ نوع تفاوتی بین این جداسازها وجود ندارد.
دستورات پايه
براي ايجاد اولين صفحه PHP شما دقيقا همان كاري را خواهيد كرد كه براي ايجاد اولين صفحه HTML انجام داده ايد.
دو تفاوت اساسي بين يك متن HTML استاندارد و يك متن PHP وجود دارد.
1- اسكريپتهاي PHP بايد در يك فايل با پسوند PHP قرار بگيرند.
2- همچنين براي جدا كردن كدهاي PHP از كدهاي HTML بايد كدهاي PHP در بين برچسب هاي <?PHP و ?> قرار گيرند.
تا كنون دو نكته از شكل دستوري PHP را ياد گرفتيد ، حالا باهم روند ايجاد يك صفحه نمونه يا بهتر بگويم اولين برنامه PHP خود را دنبال مي كنيم.
ابتدا يك ويراشگر متن مانند Notepad و يا هر برنامه اي كه مي پسنديد را باز كنيد.
توضيح : شما مي توانيد از هر ويرايشگر متني براي نوشتن دستورات PHP استفاده كنيد و همچنين مي توانيد از نرم افزار هايي كه مخصوص برنامه نويسان وب مي باشد استفاده كنيد مانند Home Site و Macromedia Dream weaver و Microsoft FrontPage و ...
از منوي فايل گزينه NEW را براي ايجاد يك سند جديد انتخاب كنيد. حال عبارتهاي زير را TYPE كنيد.
<html>
<head>
<title>Script First PHP</title>
</head>
<body>
<? PHP
?>
</body>
</html>
ساختار بالا ساده ترين ساختار براي يك سند HTML كه از برچسب هاي PHP استفاده مي كند مي باشد.
تمام اسكريپتهاي PHP بايد در بين برچسبهاي مخصوص آن قرار داده شوند تا به عنوان كدهاي PHP در نظر گرفته شوند. در حاليكه تمام كدهاي خارج اين دو برچسب معمولا به صورت كدهاي HTML استاندارد به مرورگر كاربر منتقل مي شوند.
حال با استفاده از منوي فايل گرينه Save As را انتخاب كنيد و نام فايل را frist.php قرار دهيد و در مسير root اصلي كامپيوتر خود قرار دهيد. هم اكنون شما موفق به ايجاد اولين اسكريپت PHP خود شده ايد و زمان آن رسيده است كه حقيقتا عملي را با استفاده از اسكريپت خود انجام دهيد.
در اين تمرين ما از تابع phpinfo() استفاده مي كنيم تا اطلاعاتي مخصوص نصب PHP در سرويس دهنده را به مرورگر ارسال كند. براي اضافه كردن تابع phpinfo() به اسكريپت خود فايل frist.php را در ويرايشگر متن خود باز كنيد. سپس در بين دو برچسب (<?Php ، ?> ) يك خط جديد ايجاد كنيد و عبارت phpinfo(); را تايپ كنيد ، حالا اسكريپت خود را ذخيره كنيد و آن را با استفاده از مرورگر اجرا كنيد.
توضيح : كليه دستورات PHP به علامت (;) ختم مي شود ، عدم گذاشتن اين علامت باعث خطا در اجراي روند برنامه مي شود و يكي از خطاهاي معمول در برنامه هاي PHP مي باشد.
با اجراي اسكريپت خود در مرورگر اين صفحه را خواهيد ديد كه در آن اطلاعات مربوط به نصب و پشتيباني PHP قرار دارد. ( نحوه اجرا : مرورگر خود را باز كرده و Localhost\firs.php را بنويسيد. )
چند نكته :
1- قرار ندادن علامت ; يكي از اشتباهات رايج در PHP مي باشد.
2- از آنجايي كه انتهاي هر دستور با يك علامت ; مشخص مي شود شما مي توانيد چندين دستور را پشت سرهم در يك خط تايپ كنيد و در انتهاي هر دستور يك علامت ; قرار دهيد هر چند كه اين كار را پيشنهاد نمي كنم.
3- هر دستور در PHP يك كد قابل اجرا محسوب مي شود. به عبارت ديگر يك مدل PHP بعد از هر دستور ( مانند print() و يا phpinfo() ) يك فرمان را اجرا مي كند. در مقابل ، ساختارهايي مانند خطوط توضيح ( Comment Line) برچسبهاي php (( php Tag و يا ساختارهاي كنترلي ( شرطها حلقه ها و غيره ) يك دستور محسوب نمي شوند بنابراين به يك ; نيز ختم نمي شوند.
براي نصب php مي توانيد از فيلم زير استفاده كنيد :
http://crouz.com/download/Video/local.rar
( http://www.firepages.com.au/phpdev41.htm اين فايل exe که حجمي حدود 11 مگابايت دارد سرور apache و mysql , php را نصب مي کند و نياز نيست که خودتان را با تنظيمات مربوط به آنها درگير کنيد. )
همچنين مي توانيد از مطالب این فایل استفاده كنيد.
چرا PHP ؟
اولين چيزي كه مي خواهم در موردش توضيح دهم اين است كه به چه علتي ما از PHP استفـاده مي كنيم؟ PHP در مقايسه با تكنولوژي هاي مشــابه سريعتر بهتر و آسانتر است. از جمله تكنولوژي هــاي مشابه براي طراحي يك سايت وب مي توان به اين موارد اشاره كرد :
اسكريپت هاي Common Gateway interface) CGI) كه معمولا به زبان Perl نوشته مي شوند و ASP .
مزيتي كه PHP در مقــــابل HTML دارد اين است كه HTML يك سيستم محدود به حساب مي آيد و توانايي ايجاد ارتباط متقابل با كاربر را ندارد. يك صفحه HTML ساده توانايي پاسخ به اعمال كاربر را ندارد اما با استفاده از PHP شما مي توانيد صفحاتي بر اساس سيستم عامل كاربر و يا تاريخ مشـاهده صفحه تنظيم كنيد. همچنين PHP مي تواند با فايل ها يا پايگاههــــــــاي داده ( Database ) ارتباط بر قرار كند و بسياري عمليات ديگر كه HTML قادر به انجام به آنها نمي باشد.
شايد يك سوال براي شما به وجود بياد كه چــــرا يك طراح وب بهتر است كه از زبان PHP به جاي زبانهــاي مانند CGI و ASP و يا JSP براي طراحي سـايت دينــــــــاميك استفاده كند؟
دليل اول سرعت بيشتر PHP چه در برنامه نويسي و ايجاد برنامه هايي به اين زبان و چه در اجرا مي باشد . همچنين PHP براي يادگيري بسيار ساده مي باشد و افــراد بدون نياز به زمينه هاي قبلي در برنامه نويسي و تنهــــــــــــا با يادگيري دستورات و راهنماهايي كه وجود دارد مي توانند اين زبان را ياد بگيرند.
دومين دليل اين است كه PHP به صورت اختصاصي تنها براي ايجاد صفحـــــــــــــــات ديناميك طراحي شده است. امـــا Perl و VbScript

کوتيشن يا دابل کوتيشن؛ کي و کجا استفاده کنيم؟!
ادامه مطلب