تعريف از پي.اچ.پي:
Download
Report
Transcript تعريف از پي.اچ.پي:
PDFgozar.com
باسمه تعالی
آموزش PHP
عیسی زاده
پائیز 86
PDFgozar.com
تعریف از پي.اچ.پي:
در یك كالم PHP « :یك زبان برنامه نویسي
اسكریپتي ( ) script languageمثل ،perl
قابل جاسازي یا تلفیق ( ) embeddingدر
كدهاي ( HTMLمثل جاوا اسكریپت) ،قابل اجرا بر
روي سیستمهاي مختلف مثل لینوكس و ویندوز ،با
كابردهاي وسیع براي برنامه نویسي پیشرفته در
وب است».
PDFgozar.com
تعریف از پي.اچ.پي:
درضمن Server-sideهم هست یعني مثل
ASPروي سرور اجرا و خروجیش بصورت
یك فایل HTMLتحویل شما مي شود بر
خالف JavaScriptكه Client-Side
است .پس الزم نیست مرورگر شما خاصیت
اضافه اي داشته باشد.
PDFgozar.com
ادامه...
اگر چه پي.اچ.پي syntaxخودش رو از Cقرض! گرفته ،اما
++Cو Perlو Javaهم از عنایت ایشون بي نصیب نمونده
اند.
PHPآسان تر از اونیه كه فكرشو بكنین.
ساخت و پرداخت تصاویر ،كارهاي امنیتي ،كار با كوكي ها ،آپ.لود
فایل ،پردازش ,XMLو ...کارهای دیگر PHPاست.
PDFgozar.com
:پي و بانك اطالعاتي.اچ.پي
( از آنجائیكه برنامه نویسي حرفه اي بدون بانك اطالعاتي
پي هم با خیلي از بانك هاي.اچ. پي، ) نمیشهdatabase
، مثال.اطالعاتي رابطه دارد
Adabas D, Ingres, Oracle (OCI7 and OCI8),
dBase,
InterBase,
Ovrimos
Empress
FrontBase, PostgreSQL , FilePro (read-only),
mSQL, Solid, Hyperwave, Direct MS-SQL,
Sybase, IBM DB2, MySQL, Velocis, Informix,
ODBC, Unix dbm
! كار مي كنه والغیرMySql اما بهتر از همه با
PDFgozar.com
چند تا نكته:
اول :پي.اچ.پي case-sensitive ،است .يعني حساس به حروف.
پس $aو $Aبا هم فرق دارند.
دوم :تمام دستورات در پي.اچ.پي به " ; " ختم مي شوند .اين را
هيچ وقت فراموش نكنيد.
سوم :اگر بخواهيد توضيحات ( ) commentsيك خطي داشته
باشيد ،بايد از دو عالمت " "//استفاده كنيد .و اگر توضيحاتتان در
چند خط باشند از " "*/در ابتدا و "* "/در انتهاي توضيح.
چهارم :بين عالمت كوتيشن (") و گيومه (') يك فرق كوچك هست.
پي.اچ.پي محتواي بين كوتيشن را تحليل و ترجمه ميكنه ،همين!
PDFgozar.com
:) type ( انواع
: ) داردtype ( تا نوع8 ،پي.اچ.پي
وobject وarray وstring وfloat وinteger وboolean
. كه پنج تاي اولي پركاربردتر هستندNULL وresource
PDFgozar.com
متغیرها:
يك متغير با گذاشتن عالمت $به اول يك اسم ساخته ميشود! دامنه
تعريف متغيرها ،در ناحيه اي است كه تعريف مي شوند.
بعدا كه تعريف تابع را ياد گرفتيد ،مي بينيد كه از يك متغير
سراسري همين جوري! نمي شود در بدنه يك تابع استفاده كرد.
PDFgozar.com
در ضمن پي.اچ.پي يك سری متغير "از پيش تعريف شده" ( ) predefined
دارد كه خيلي عاليند .براي اينكه اونها رو بينيد كافيه كد زير رو بنويسيد و اجرا
كنيد:
(); ?> echo phpinfo
مثال ]'$_SERVER['PHP_SELFكه اسم فايل برنامه رو برمي گردونه.
از اين براي مستقل كردن كدهاي برنامه از اسم فايل خيلي استفاده مي شه.
يا ]'$_SERVER['HTTP_USER_AGENTكه نوع مرورگرتان را
برمي گرداند.
يا $HTTP_POST_VARSو $HTTP_GET_VARSكه براي
ارتباط با فرم ها بايد! استفاده بشوند( .البته مي تونيد از $_POSTيا
$_GETهم استفاده كنيد ،به شرطي كه نسخه پي.اچ.پي باالتر از 4.2باشه)
PDFgozar.com
موارد الزم براي : php
یك ویرایشگر مثل DreamWeaverالبته با نوت پد هم مي شه
و لي با این راحت ترید ...
یك محیط كه برنامه هاي phpبتونن اونجا اجرا شوند مثل یك
سرور كه phpرو هم ساپورت مي كنه ...البته برنامه هایي هم
وجود دارند كه اون سرور رو روي كامپیوتر ما شبیه سازي مي
كنند...مثل Easy PHPو ...
PDFgozar.com
دستورات phpرا بايد در دوتا تگ كه
مخصوص اون هست بنويسيم.
?>
------<?
PDFgozar.com
خوب ساده ترين دستور phpرو باهم مي نويسيم
و تست ميكنيم.
>? php
;”(print)"SALAM
>?
همین طور كه قبال گفتم این كد را در یك فایل با پسوند phpذخیره
مي كنیم و آن را در پوشه wwwقرار مي دهیم حاال براي اجراي
رویم.
مي
آدرس
این
به
اون
(به فرض این كه نام این فایل test.phpباشد ) .
http://127.0.0.1/test.php
خوب باید كلمه SALAMچاپ شود
PDFgozar.com
توضيح برنامه
دستور printبراي ارسال یه چیزي به مرورگر به كار مي رود.
در این دستور میتوانید به جاي "" از '' هم استفاده كنید حتي میتوانید پرنتز
ها رو هم نگذارید ...
در این دستور سیمیكلن " ; " آخر الزامي است.
در دستور میتوانید كد هاي htmlرو هم قرار بدین مثال :
>? php
; ”<“\print ">img src=“\http://MyImageUrl/test.jpg
>?
خوب این كد باید یه تصویر كه آدرسش را نشان بدهد :
http://MyImageUrl/test.jpg
PDFgozar.com
توضيح
اگه دقت کرده باشید داخل تگ imgكه یك تگ htmlهست خود
اون "" داشت البته مي تونیم اینو نگذاریم (توي ) htmlولي در
كل بهتره بدونید كه چون ما در دستور printاز "" استفاده كرده
ایم پس هرجا كه به " برخورد كند فكر میكند كه دستور به پایان
رسیده به عبارت دیگر این كاراكتر " براي این دستور معني
خاصي دارد پس ما براي این كه اون رو توي خروجي عینا چاپ
كنه یك بك اسلش \ قبل از اون مي گذاریم.
PDFgozar.com
يه مثال ديگر :
>?php
; (”print("SALAM<br>Khubi
<?
در این دستور هم از یه تگ htmlاستفاده كردیم (< )>brاین تك
باعث میشود كه به خط بعد برویم یعني كلمه SALAMنمایش
داده مي شود و كلمه Khubiدر خط بعد نمایش داده مي شود.
PDFgozar.com
متغير چيه ؟
فرض کنید شما میخواهید یک مقدار عددی یا یک رشته مثال اسم
یک نفر رو نگه دارید و بعد از یک سری کار ها دوباره ازش
استفاده کنید .برای این کار از چیزی به نام متغیر استفاده می کنیم
.در واقع وقتی یک متغر را تعریف می کنیم یک قسمت از حافظه
Ramسیستم را رزرو می کنیم و هر چه را که می خواهیم آنجا
می نویسیم .در برنامه های دیگر مثل …,C,Pascalما هنگام
تعریف متغیر بایستی نوع آن را هم تعریف کنیم (...نوع چیه ؟) اما
توی phpنیازی به تعریف نوع نمی باشد خود phpنوع آن را
تشخیص می دهد .یه مثال ساده :
;$a = 25
PDFgozar.com
توضيح
دقت کنید که در این مثال aنا متغیر است و عدد 25مقداری است
که ما در آن متغیر قرار داده ایم .همان طور که قبال گفته شد بعد از
هر دستور باید سیمیکلن ; قرار می دهیم .عالمت $چیه ؟ توی
phpقبل از نام هر متغیر بایستی حتما این عالمت رو قرار دهیم .
نامگذاری متغیر ها یک سری قوانین داره که مثال اولین کاراکتر
اون نمیتونه _ باشه یا با عدد شروع بشه و همچنین بایستی از
حروف الفبا استفاده کنی
PDFgozar.com
مثال همه نمونه های زیر نادرستند:
;_$salam = 12
;65$a= 10
حال که با نام گذاری آشنا شدیم ببینیم چه مقادیری توی متغیر ها
می توانیم قرار دهیم یا بهتر بگم چه نوع هایی داریم:
;$a = 12
این نوع یک عدد صحیح است .
;$a = 12.5
این نوع یک عدد ممیز شناور (اعشاری) است.
PDFgozar.com
;" $a = "Ali
این یک رشته است دقت کنید که برای وارد کردن رشته بایستی از
دو عالمت " " یا ' ' استفاده کنیم یعنی
;$a = 123
با :
;'$a = '123
خیلی فرق داره اولی عدد 123است و دومی کاراکتر 1و 2و 3
است که به دنبال هم یک رشته رو تشکیل می دهند.
PDFgozar.com
مثال ديگر:
;$num1 = 10
;$num2 = 5
;$total = $num1 + $num2
;(print($total
اگر دقت کنید می بینید که در خط اول و دوم دو متغیر به نام های
num1و num2رو تعریف کردیم و مقدار دادیم و در خط بعد
مجموع این دو را در متغیر totalقرار دادیم و درخط بعد نتایج را
چاپ می کنیم (به مرور گر ارسال می کنیم.).
توجه :سعی کنید که همیشه نام های با مسما به متغیر هاتون بدین
برای این که بعد به فهم برنامه کمک می کنه و دلیل دیگر اون اینه
که اگه برنامتون طوالنی بشه دیگر گیج نمی شوید.
PDFgozar.com
شرط ها .
فرض کنید توی برنامتون قراره که کاربر نام کاربری و کلمه عبور خود را
وارد نماید و در صورت درست بودن هر دو بتواند وارد صفحه دیگری شود
برای این کار (یعنی چک کردن usernameو ) passwordاز شرط
.
کنیم
می
استفاده
مثال :
(یه شرط) if
}
---------{
شکل کلی شرط به این صورته .داخل پرانتز یه شرط رو می نویسیم و بین {
} دستوراتی که اگر شرط داخل پرانتز برقرار بود باید اجرا شوند رو قرار
میدهیم.
PDFgozar.com
مثال :
)"if($user == "ali
{
; (”!print)"Welcome Ali
{
در صورتی که متغیر userبرابر با رشته aliبود دستور print
داخل شرط اجرا می شه .
(آقا این == چیه ؟)
خوب حاال بریم سراغ جواب این سوال :
PDFgozar.com
برای بررسی دو چيز با هم از يک سری عالمت
ها استفاده می کنيم :
== بررسی تساوی دو چیز
> کوچکتر
< بزرگتر
=> کوچکتر یا مساوی
=< بزرگتر یا مساوی
=! مخالف (نامساوی)
PDFgozar.com
حلقه ها
حلقه ها در هر زباني براي انجام كارهاي تكراري به كار مي رود مثال براي
نمایش لیستي از نتایج جستجو و یا هر چیز دیگه اي ...در این جا سه نوع از
حلقه هایي كه در phpبه كار مي رود را توضیح میدهیم ...با یک مثال
...
كنیم
مي
شروع
ساده
میخواهیم یه كلمه 10بار چاپ بشود ...
)for($i = 0 ; $i<10 ;$i++
{
; (“>print("Salam<br
{
اين تكه كد كلمه Salamرو 10بار زير هم توي مرورگر نمايش
ميدهد...
PDFgozar.com
حلقه ها
خوب حاال به توضيح ميپردازيم :
اين حلقه كه به كار برديم به حلقه forمعروف است و شكل كلي اون اين
طوري است ...
(for(1 ; 2 ; 3
}
بدنه حلقه
{
PDFgozar.com
توضيح :
-1در این قسمت مقدار اولیه رو مینویسم .یعني شمارنده حلقه (؟) از كجا
...
بشه
شروع
-2در این قسمت یک عبارت شرطي رو مینویسیم و به محض این كه این
شرط نادرست شود یعني falseبشه از حلقه خارج مي شویم ...دقت كنید
باید شرطي بنویسیم كه با الخره یه موقعي falseبشه و از حلقه خارج بشیم
چون اگه خارج نشیم همین طور توي حلقه مي چرخیم و تا ابد بیرون نمیاییم.
-3در این قسمت كه به گام حلقه موسوم است بایستي عبارتي رو بنویسیم كه
مثال به مقدار اولیه یه چیزي اضافه كنه یا ازش كم كنه ...بستگي به شرایط
داره ...
PDFgozar.com
بدنه حلقه ؟
بدنه حلقه دستوراتي است كه ما مي خواهیم آنها را تكرار كنیم ...
در مثال باال دستور printبود بدنه حلقه میتونه هر چند تا دستور
كه بخواهیم باشه حتي مي تونه چند تا حلقه دیگه هم توش باشه
...
PDFgozar.com
نكات مهم :
* دقت كنید كه ما یک متغیر به عنوان مقدار اولیه در نظر گرفتیم
...و این مقدار مي تونه هر چیزي باشه یعني مي تونه عدد یا
كاراكتر باشه ...
* شرط حلقه مي تونه هیچ ربطي به متغیري كه ما توي مقدار
اولیه تعریف كردیم نداشته باشه ...
* گام حلقه مي تونه كم بشه یا زیاد بشه همچنین میتونه یكي یكي
كم و زیاد بشه و یا حتي هر بار 0.1تغییر كنه ...
PDFgozar.com
نکات مهم
* $i++چیه ؟
این دقیقا معادل اینه ; i = $i +1$ :
یعني یكي به متغیر iاضافه مي كنه یه چیز دیگه توي همین مایه
ها داریم كه به این شكل مي نویسیم $i--یعني یه دونه از iكم مي
...
نویسیه
ساده
جور
یه
...
كنه
PDFgozar.com
نکات مهم
* ما میتونیم هر یك از قسمت هاي سه گانه حلقه (یعني مقدار اولیه
و شرط و گام حلقه ) را ننویسیم البته باید ';' را بگذاریم .مثال :
(;;) for
}
چند تا دستور
{
PDFgozar.com
حلقه while
...مثال باال را با همین حلقه مینویسیم
;$ : i = 0
) while($i < 10
{
;)">print("Salam<br
$i ;++
{
ساختار كلي این حلقه به این شكل است :
(شرط)while
{
بدنه حلقه
}
این شرط به محض این كه نقض ( )falseشود از حلقه خارج مي شویم ...
PDFgozar.com
حلقه : do while
;$i = 0
do
{
;$i++
;)">print("Salam<br
;)}while($i<10
این حلقه دقیقا مثل whileاست با این تفاوت كه شرط حلقه در
پایان حلقه بررسي میشه این حلقه در هر صورت حداقل یك بار
اجرا مي شود و لي حلقه هایي مثل while , forدر صورتي كه
قبل از حلقه شرط برقرار نباشد اصال وارد حلقه نمیشود اما این
نوع حلقه حتما یك بار وارد مي شود ...
PDFgozar.com
براي ارسال ايميل يه فرم ساده رو در نظر مي گيريم
<form method="POST" action="mail.php">
<p>Your Email :<input type="text"
name="mail_from" size="20"></p>
<p>Your Mail Subject : <input type="text"
name="mail_subject" size="20"></p>
<p>Your Message : <textarea rows="2"
name="mail_body" cols="20"></textarea></p>
<p><input type="submit" value="Send"
name="submit"></p>
</form>
PDFgozar.com
فرمها
چون برنامه هایي كه ما مي نویسیم روي سرور هستند و به
درخواست كاربر اجرا مي شوند در این قسمت به فرم ها (كه یك
نوع در خواست هستند) مي پردازیم .
فرم چیست؟ یک صفحه كه یك یا چند تا دكمه و یا جایي براي ورود
اطالعات داره مثل جایي كه نام كاربري و كلمه عبور رو وارد مي
كنیم و یا مثل صفحه اول گوگل كه یه دكمه و یه محل ورود داره..
PDFgozar.com
فرمها
با فرم ها به دو صورت اطالعات رو به سمت سرور مي فرستیم (یا
اصطالحا در خواست میدهیم)
1- Get
2- Post
PDFgozar.com
: ساخت فرم
استفاده كنیم ربطي بهHtml براي ساختن فرم بایستي از كد
ندارهphp
: یك مثال از یك فرم
<form method="POST" action="Page.php" name="MyForm" target="_self">
<input type="text" name="T1" size="20">
<input type="submit" value="Submit" name="B1">
<input type="reset" value="Reset" name="B2">
</form>
PDFgozar.com
بررسی تگ ها()Tags
بررسي تگ <form> :
این تگ هم مثل بقیه تگ هاي htmlیك سري خاصیت داره و از یه جا شروع مي شه و به
یه جا ختم مي شه .
:methodنوع درخواست را مشخص مي كند كه مي تواند POSTو یا GETباشد در
صورتي كه اصال این را ننویسیم به صورت پیشفرض Getدر نظر گرفته مي شود .
:actionصفحه مقصد را مشخص مي كند یعني این كه پس از پر كردن فرم براي ارسال
اون به سمت سرور به كدوم صفحه ارسال بشه ...در ادامه مي بینیم كه كد هاي مربوط به
فرم رو باید توي صفحه مقصد بنویسیم .در صورتي كه این را ننویسیم صفحه جاري صفحه
مقصد در نظر گرفته مي شود.
:nameنام فرم است كه براي phpنیازي به اون نداریم
: targetنوع باز شدن صفحه مقصد كه شامل صفحه جاري ،صفحه جدید ،صفحه پدر ،
یك فریم خاص و ...است .ممكنه تا به حال به صفحاتي بر خورده باشید كه پس از فشردن
دكمه مربوط به ارسال فرم نتیجه رو توي یه صفحه جدید مشاهده كردید .
PDFgozar.com
:مثال
فرض كنیم مي خواهیم برنامه اي بنویسیم كه یك رشته را دریافت
بار چاپ كنه؟5 كرده و اونو
: هستHtml اول فرم مي سازیم كه
<form method="POST" action="print.php">
<p><input type="text" name="T1" size="20"></p>
<p><input type="submit" value="Submit" name="B1"></p>
</form>
PDFgozar.com
ادامه مثال -اجرای برنامه:
اين فرم يه فرم خيلي ساده است كه صفحه
مقصد اون print.phpهست و چون
آدرسي داده نشده پس صفحه اي كه فرم
توي اونه و صفحه اي كه كد هاي
phpتوي اون نوشته شده
)(print.phpبايستي توي يه فولدر
باشند .
اين فرم يه فيلد (جايي كه اطالعات رو
توي اون مي نويسيم) و يه دكمه داره .
PDFgozar.com
)print.php (صفحهphpخوب حاال كد
<?
$my_str = $_POST['T1'];
for($i = 0 ; $i < 5 ; $i++)
{
print($my_str);
}
?>
PDFgozar.com
توضيح کد PHP
در خط اول به یه متغیر به نام my_strمقدار
كد]': $_POST['T1رو انتصاب دادیم .این مقدار براي
دسترسي به اشیاي فرم هست
T1نام آن فیلد ما است كه محتواي آن را توي یه متغیر ریختیم و
توي حلقه اون رو 5بار چاپ كردیم.
توجه :براي دسترسي به اشیاي فرم در صورتي كه با Getارسال
شده باشند از :
]'$_GET['FieldName
استفاده می نماییم.
PDFgozar.com
استفاده از چند عملگر در یک دستور
دستورات PHPهمانند عملیات ریاضی برای کار کردن با اعداد از
شرط تقدم استفاده می کند.
PDFgozar.com
استفاده از توابع محاسباتی پیش ساخته
)(round
تابع
این تابع همانگونه که از نام آن پیداست ،برای گرد کردن اعداد به
کار می رود ،به این صورت که اعداد با قسمت اعشاری .5و یا
بیشتر ،به عدد صحیح باالتر و اعداد با قسمت اعشاری کمتر از .5
به عدد صحیح پایین تر ،گرد می شوند.
PDFgozar.com
توابع )(randو )(srand
این دو تابع در حقیقت در یک تابع شکل کاربردی
پیدا می کنند .تابع )(randیک عدد تصادفی ایجاد
می کند و تابع )(srandکه قبل از تابع )(rand
به کار می رود ،برای تنظیم عملکرد این تابع به کار
می رود.
PDFgozar.com
شما می توانید برای محدود کردن اعداد تصادفی ایجاد شده در یک
بازه ی خاص ،حداقل و حداکثر بازه را به عنوان پارامتر به تابع
)(randارسال کنید.
PDFgozar.com
تابع )(abs
این تابع که کاربرد زیادی در اسکریپت ها می تواند داشته باشد
یک عدد از ما گرفته و قدر مطلق آن را برای ما محاسبه می کند.
PDFgozar.com
استفاده از ساختار شرطی Else
این ساختار شرطی در حقیقت مکمل ساختار شرطی ifاست.
کارکرد این دستور دقیقا برعکس ifاست یعنی وقتی شما یک
دستور را چک می کنید در صورت درست نبودن ،برنامه با استفاده
از دستور Elseکار دیگری را انجام می دهد.
شکل کلی استفاده از این عبارت شرطی به صورت زیر است:
PDFgozar.com
اسکريپت Email
یکی از پرکاربردترین و ساده ترین اسکریپت ها مربوط به ارسال
ایمیل میشه ،همون فرم ارتباط یا .Contact Form
ما در اینجا نحوه ی درست کردن این اسکریپت را در اختیار شما
میذاریم
PDFgozar.com
ادامه...
در اینجا ما یه صفحه ی HTMLدرست کردیم و درون اون یه
فرم قرار دادیم که اطالعات رو توسط Text Boxها بگیره و
واسه ی انجام دهنده ی عملیات ( )mail.phpبفرسته.
PDFgozar.com
PHP کد
PDFgozar.com
در اين مرحله چکار کرديم؟
یک صفحه ی PHPدرست کردیم به اسم mail.php
سپس هر کدوم از Text Boxهای صفحه ی قبل رو به عنوان
یه متغیر در نظر گرفتیم.
در پاراگراف بعدی واسه برنامه یه شرط گذاشتیم که اگه آدرس
ایمیل معتبر نبود عملیات رو متوقف کنه یا اگه جای عنوان خالی
بود هم عملیات رو متوقف کنه.
در خطوط بعدی اگر تمام شرایط آماده بود ایمیل ارسال میشه و
واسه ی کاربر یه پیام تشکر میاد ،اگر هم به دالیلی ایمیل ارسال
نشد پیام ارسال نشدن ایمیل رو نشون بده.
PDFgozar.com
ادامه...
شما میتونید به راحتی فیلدهای دلخواهتون رو اضافه کنید و سپس
در فایل mail.phpبه صورت متغیر تعریف کنید و در ایمیل
ارسالی اضافه کنید.
برای استفاده از این اسکریپت کافیه که آدرس ایمیلی که میخواهید
با این فرم به اون ایمیل ارسال کنید رو یه جای قسمت زرد رنگ
وارد کنید.
راستی اگه mail.phpرو بین تگ های PHPمیذاشتی بهتر
بود.