PDA

توجه ! این یک نسخه آرشیو شده می باشد و در این حالت شما عکسی را مشاهده نمی کنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : آموزش مقدماتي php



TAHA
11-06-2009, 07:17 PM
مقدمه
اینترنت دنیای عجیبی است که تکنولوژی های مربوط به آن اغلب بدون پشتیبانی کافی عرضه می شوند و کاربران این تکنولوژی ها همه روزه با واژگاه جدیدی برخورد می کنند، که باعث سردرگمی آنها می شوند. برای نمونه می توان به رشد نرم افزار های متن باز اشاره کرد. متداول ترین این برنامه ها، سیستم عامل Unix و به طور خاص Linux می باشد. این برنامه ها، با وجود ثبات و پایداری، دارای یک مشکل بزرگ می باشند و آن دشوار بودن آموختن این برنامه ها می باشد. کمبود راهنماهایی که به زبان ساده، این برنامه ها را به مبتدیان آموزش دهد، باعث شده است که این دسته از نرم افزارها از جایگاه واقعی خود دور نگاه داشته شوند. PHP‌ یکی از این زبانهای اسکریپتی متن باز می باشد که تا کنون علی رغم سادگی استفاده از آن، هنوز به طور شایسته از آن استقبال نشده است.

تاریخچه PHP
نظریه و ایده PHP‌ در سال ۱۹۹۴ توسط راسموس لردورف به معنی Personal Home Page به منظور تولید صفحات تخصصی صفحات وب ابراز شد و نسخه ۱ این زبان اوایل سال ۱۹۹۵ ارائه شد و با توجه زیادی از طرف کاربران روبرو شد. به همین دلیل نسخه این زبان در اواخر همین سال ارائه گردید.
نسخه ۳ و ۴ این زبان در سالهای ۱۹۹۷ و ۲۰۰۰ ارائه گردید. با گسترش قابلیتها و موارد استفاده این زبان PHP در معنای بازگشتی PHP Hyper Text Preprocessor به کار گرفته شد. (عبارت پیش پردازشگر بدین معنی است که PHP، اطلاعات را قبل تبدیل به زبان HTML پردازش می کند)

PHP یک زبان اسکریپتی
PHP بر خلاف اکثر زبانهای برنامه نویسی دیگر یک زبان اسکریپتی می باشد. به بیان دیگر دستورات PHP در ازای رخداد یک رویداد (Event) اجرا می شود و همانند زبانهای برنامه نویسی دیگر مانند C‌ یا Delphi نمی تواند به صورت مستقل و بدون نیاز به یک رویداد، کاری را انجام دهد. این رویداد ها می توانند شامل ارسال یک فرم، رفتن به یک آدرس وب و یا موارد دیگر باشند.
بعنوان یکی از زبانهای مشابه PHP می توان به Java script‌ اشاره کرد با این تفاوت که PHP‌ یک زبان سمت سرویس دهنده می باشد ولی Java script یک زبان سمت سرویس گیرنده می باشد.
سمت سرویس دهنده و گیرنده به این معنی می باشد که:
برنامه های که در سمت سرویس دهنده بار گذاری می شوند، در واقع برو روی دستگاهی قوی که به آن سرور می گویند سوار شده و اجرا می شوند. ولی برنامه های سمت سرویس گیرنده در واقع روی دستگاه کاربر سوار شده و اجرا می شوند.
بله همانطور که متوجه شدید PHP بعد از اینکه پردازشهای لازم را در سرور انجام داد خروجی را به صورت کدهای HTML به مرورگرهای ما ارسال می کند.
این در صورتی است که در حالت عادی سرور به طور مستقیم کدهای HTML‌ را ارسال می کند و هیچ پردازشی روی کدهای HTML انجام نمی دهد.
توجه: یک سرویس دهنده (سرویس دهنده ای که ما برای کارهای وب سایت نیاز داریم) در واقع یک رایانه مخصوص و قوی می باشد که صفحات وب در آنجا نگهداری می شوند و از آنجا به مرورگر کاربران منتقل می شوند.
تابحال با دو خاصیت PHP با نام های اسکریپتی بودن و سرور ساید بودن آشنا شده ایم، و حال می خواهیم شما را با خاصیت های دیگر این زبان قدرتمند آشنا نماییم:
Cross Platform و HTML Embeded
Cross Platform
منظور از Cross Platform بودن این زبان، این است که بر روی هر رایانه با هر سیستم عاملی توانایی نصب و اجرا را دارا می باشد. توجه کنید که این واژه فقط برای رایانه سرویس دهنده معنا پیدا می کند، و همانطور که می دانید خروجی این زبان HTML بوده و توانایی اجرا بر روی هر نوع مرورگر با هر نوع سیستم عاملی را دارا می باشد. علاوه بر این به طور مثال شما می توانید برنامه PHP خود را در ویندوز بنویسید و در سیستم عامل دیگری مانند لینوکس به راحتی اجرا کنید و از آن استفاده کنید. البته تفاوت های اندگی در کاربرد PHP‌ بر روی این سیستم عامل ها وجود دارد که خیلی کم و جزئی می باشند و حتی در مواردی نیازی به تغییر نمی باشد.
HTML Embeded
منظور از HTML Embeded بودن این است که دستورات این زبان در بین کدهای HTML قرار می گیرند.
نیازهای شما برای کار با زبان PHP‌
سرویس دهنده ای که بتواند زبان PHP را پشتیبانی نماید مانند Apache یا IIS
کامپایلر PHP
یک ویرایشگر متنی مانند Note Pad در ویندوز و Kwrite در لینوکس

TAHA
11-06-2009, 07:19 PM
مقدمه
PHP یک زبان اسکریپتی سمت سرور (Server Side) می باشد که امروزه بیش از نصفی از وبسایتهای مطرح جهان، از آن برای حفظ و نگهداری داده ها و ایجاد سایتهای دینامیک و به روز استفاده می کنند.
PHP هم همانند تمامی زبانهای برنامه نویسی Server Side، ترجمه شده و در نهایت به صورت کدهای HTML در اختیار کاربر قرار می گیرد. از این رو کد شما، از دید دیگران پنهان می ماند.
اما فرق PHP با دیگر زبانها چیست؟ یکی از مهمترین رقیبهای PHP، توسط مایکروسافت تحت عنوان ASP که در نسخه جدید به ASP.NET تغییر نام داده است، به وجود آمده و هنوز بحث سر آن است که کدامیک از آنها قویتر و مناسب تر است.
در این مقاله نمی خواهم بگویم که کدام یک بهتر است. هر کس عقاید مربوط به خود را دارد. در زیر به مقایسه این دو زبان می پردازم:

تقریبا در تمامی مراکز فروش هوست (Host)، سرور لینوکس ارزانتر از سرور ویندوز است و از آنجا که برای اجرای صفحات ASP.NET، نیازمند سرور ویندوز همراه با وب سرور IIS هستیم، می بایست پول بیشتری را پرداخت کنیم. این در حالی است که PHP بر روی تمامی Platformها از قبیل ویندوز و لینوکس نصب و اجرا می گردد.
PHP کاملا Open-Source می باشد.
به وضوح در اجرای صفحات ASP.NET و PHP دیده می شود که سرعت PHP سریعتر از ASP.NET می باشد.
برای ایجاد کردن صفحات PHP، هیچ نرم افزار جامعی به بازار ارائه نشده است که بتواند نیازهای کاربران را بر طرف کند (از Dream Weaver می توان تا حدی استفاده کرد)، اما نرم افزار پر قدرت Visual Studio.NET، نرم افزاری جامع برای ایجاد صفحات دینامیک ASP.NET می باشد.
در ASP.NET می توان از ترکیب زبانهای برنامه نویسی مختلف نظیر VB, C#, C++و غیره استفاده کرد ، اما PHP فقط از همان زبان خودش که PHP است پشتیبانی می کند.
ASP.NET دارای ویژگی ای تحت عنوان Code Behind می باشد که به برنامه نویس اجازه می دهد کدهای HTML را جدا از کدهای ASP.NET نگهداری کند. این کار سبب آن می شود که در صورت نیاز به رفع مشکل، برنامه نویس مستقیما به فایل مربوط به کدهای ASP.NET برود و با کدهای HTML کاری نداشته باشد. در صورتی که PHP به صورت Default این طور نیست (به وسیله نرم افزارهایی می توان برای PHP هم، این کار را کرد).
همان طور که مشاهده کردید، هر کدام از آنها دارای معایب و مزایایی هستند و انتخاب آنها، کاملا به عهده خود شماست.

نصب PHP
نصب PHP بر روی ویندوز و IIS کار بسیار آسانی است. اما از آنجا که در این مقاله، علاوه بر آشنایی با PHP، مروری بر پایگاه داده ی MySQL داریم، نیازمند MySQL نیز هستیم. اگر بخواهید تک تک آنها را از اینترنت دانلود کرده و آنها را جداگانه نصب و پیکربندی کنید، می بایست وقت بسیاری را صرف کنید. دانلود آنها (آن هم با یک مودم و اینترنتی که بیش تر از 4KB/S نمی رود) کار بسیار زمان بری است. همچنین برای پیکربندی آنها نیز، مستلزم انجام کارهای نه چندان خوشایند هستید!
بدین منظور، من به شما یک راه ساده تر را پیشنهاد می کنم. XAMPP!
XAMPP یک مجموعه نرم افزاری بسیار جالب است که علاوه بر حجم کم آن (تنها 13MB)، تمامی پکیجهای مورد نیاز شما را شامل می شود:



Apache 2.0.48
MySQL 4.0.16
PHP 4.3.4 + PEAR
MiniPerl 5.8.0
mod_php 4.3.4
PHPMyAdmin 2.5.3
SQLite 2.8.6
این در حالی است که فقط خود MySQL به تنهایی، حجمی بیشتر از 10MB دارد.
من از پکیج XAMPP mini win32 Version 1.2 در کامپیوتر خودم استفاده می کنم. آن را می توانید از آدرس زیر دانلود کنید.


http://www.apachefriends.org/download.php?minixampp-win32-1.2.exe
چگونگی نصب XAMPP
نکته: قبل از انجام اين عمليات، وب سرور IIS خود (و يا ديگر وب سرورها) را غير فعال (Disable, Stop) کنيد.
پس از دريافت XAMPP آن را در جاي مورد نظر خود نصب (Extract) کنيد. فرق نمي کند که کجا باشد.
سپس به پوشه اي که XAMPP را در آنجا Extract نموده ايد، برويد. فايل setup_xampp.bat را باز کرده تا صفحه سياهي نمايان شود. عدد 1 را وارد کرده و کليد Enter را فشار دهيد تا مراحل نصب آغاز شود.
پس از آنکه نصب به پايان رسيد، مي بايست سرور شويد. براي اينکار دو فايل apache_start.bat و mysql_start.bat را اجرا کرده و ديگر کاري به آنها نداشته باشيد. آنها را Minimize کرده و مابقي کارها را انجام دهيد.
حال مرورگر دلخواه خود را باز کرده و عبارت http://localhost (http://localhost/) (يا http://127.0.0.1 (http://127.0.0.1/)) را تايپ نماييد. با انجام اينکار مي بايست صفحه بنفش رنگي نمايان شود.

چگونگي اجرا کردن اسکريپتهاي PHP به وسیله XAMPP
اسنادي را که خواهان اجراي آن به وسيله XAMPP هستيد، مي بايست درون پوشه htdocs کپي نماييد. ولي در نوشتن آدرس آن در مرورگر، نيازي به نوشتن اين پوشه نيست. به عنوان مثال فايل %XAMPP%\htdocs\weblog\index.php را در مرورگر مي بايست به صورت http://localhost/weblog/index.php اجرا نمود...

شروع کار با PHP
در برنامه نویسی هیچ چیز لذت بخش تر از کد نویسی نیست. همین حالا برنامه Notepad خود را باز کرده و کدهای زیر را در آن بنویسید:




<html>
<head>
<title>PHP Info</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>

<body>
<?php
phpinfo();
?>
</body>

</html>

این فایل را در محل %XAMPP%\htdocs\PHP\phpinfo.php ذخیره کرده و به وسیله مرورگر خود، آدرس http://localhost/PHP/phpinfo.php را اجرا نمایید. با انجام این کار، صفحه ای که مشخصات PHP نصب شده بر روی سیستم را به شما نشان می دهد، نمایان خواهد شد.

آشنایی با PHP
همان طور که در مثال بالا مشاهده کردید، کد زیر با بقیه کدهای HTML فرق داشت:




<php
phpinfo();
?>

این تکه کدی است که به وسیله PHP نوشته شده است. برای نوشتن کدهای PHP، می بایست آنها را در بین تگهای ?> و <?php یا ?> و <? قرار داد. همچنین یک راه میانبر نیز است که به صورت <?=SOMETHING?> به کار می رود. در این مقاله از همان روش ?> و <?php استفاده می شود.

عبارات (Statements)
به طور کلی در PHP، عبارات به دو دسته زیر تقسیم می شوند:
تک خطی (Single Line)
چندخطی (Multi Line)
در انتهای هر عبارت PHP، یک علامت سمی کالن (;) قرار می گیرد. به وسیله این علامت، PHP متوجه می شود که یک عبارت به اتمام رسیده و عبارت دیگری در حال شروع است. به مثالهای زیر توجه کنید:


<?php
echo("Hello World!");
echo("Mojtaba");
?>

<?php
echo("Hellow World"); echo("Mojtaba");
?>
هر دو کد بالا صحیح است. چرا که بعد از اتمام هر یک از عبارت PHP، یک علامت سمی کالن قرار داده شده است. برنامه نویسان معمولا از کد بالایی استفاده می کنند. چرا که در آن، هر یک از کدهای PHP در یک خط مجزا قرار گرفته و در نتیجه نگهداری کد آسان تر خواهد شد. حال به کد زیر توجه کنید:



<?php
echo("Hello World!")
echo("Mojtaba")
?>
اجرای این کد سبب خطا می شود. چرا که عبارت در آن از هم جدا نشده است و عبارتی همانند عبارت echo("Hello World") echo("Mojtaba") برای PHP ناآشناست.
تا به اینجای کار، عبارت تک خطی مورد بررسی قرار گرفتند و اما عبارات چند خطی. عبارات چندخطی که به کد بلاک (Code Block) معروف است، در PHP توسط آکولادها ** ** احاطه می شوند. این عبارات با همدیگر اجرا می شوند. به عنوان مثال در یک عبارت شرطی (عبارات شرطی در جلوتر مورد بررسی قرار می گیرند)، برای PHP تعیین می کنیم که اگر شرط درست بود، این سری عبارات و در غیر این صورت، سری دیگری عبارات را اجرا نماید:



<?php
if (8 > 5) **
echo("True");
echo("8 is greater than 5");
** else **
echo("False");
echo("The statement is false");
**
?>
فعلا زیاد به معنای این قطعه کد کار نداشته باشید. من فعلا می خواهم به شما ساختار عبارات چند خطی را نشان بدهم. در این قطعه کد اگر شرط درست باشد، دو عبارت بالایی و در غیر این صورت، دو عبارت پایینی اجرا می شوند. همان طور که می بینید، عبارت در بین آکولادها قرار گرفته اند. همچنین در انتهای هر عبارت، یک علامت سمی کالن قرار داده شده است. انجام این کار را هیچ موقع فراموش نکنید: قرار دادن یک سمی کالن در انتهای هر عبارت.
در اینجا بد نیست به نکته دیگری نیز اشاره کنم. شما می توانید کدهای PHP را همراه با کدهای HTML مخلوط کنید. ابتدا به مثال زیر توجه کنید تا درباره آن بیشتر توضیح دهم:



<?php
if (8 > 5) **
echo("8");
?>
<br>is greater than<br>
<?php
echo("5");
**
?>
همان طور که مشاهده می کنید، در قطعه کد بالا، ما از دو بلاک PHP استفاده کردیم و در بین آنها یک خط کد HTML قرار داده ایم. در این کد همان طور که مشاهده می کنید، از عبارات چند خطی استفاده شده است (به آکولادها دقت داشته باشید). آکولاد آغازین در قطعه کد اول و آکولاد پایانی در قطعه کد دوم قرار داده شده است. خروجی این عبارت به صورت زیر خواهد بود.


8
is greater than
5


توضیحات (Comments)
همانند توضیحات در HTML، در PHP هم می توان از توضیحات استفاده کرد. به نظر من توضیحات یکی از اصلی ترین بخشهای برنامه نویسی می باشد. به وسیله توضیحات، می توانید بعد از نگاه مجدد به کد نوشته شده، ساختار آن را بفهمید. شاید در نگاه اول با خود بگویید کدی را که خودم نوشتم، دیگر نیازی به توضیحات ندارد. اما فرض کنید شما برنامه ای نوشته اید و هم اکنون، 1 سال است که دیگر به کدهای آن نگاهی نینداخته اید. در این صورت توضیحات، با ارزشترین چیز برای شما خواهد بود.
توضیحات در PHP به دو نوع توضیحات تک خطی و چند خطی تقسیم می شود. برای قرار دادن توضیحات تک خطی، از دو روش زیر می توانید استفاده کنید:

استفاده از دابل اسلش (//)
استفاده از کاراکتر شارپ (#)
همچنین برای قرار دادن توضیحات چندخطی، از توضیحات نوع جاوا یا C++ (که در CSS نیز از آنها استفاده می شود)، استفاده می کنیم. برای این کار توضیحات خود را در بین علامتهای */ و /* قرار می دهیم.
همچنین به این نکته دقت داشته باشید که توضیحاتی که در بین کدهای PHP قرار می دهید، پس از اجرا در مرورگر، در Source صفحه به نمایش در نخواهند آمد. به کد زیر توجه کنید:



<?php
/* The below statements,
print "Hello World"
to the browser */
echo("Hello"); // Print "Hello" to the browser
echo("World"); # Print "World" to the browser
?>
همچنین می توانید توضیحات را در جاهای دیگر نظیر وسط کدهای PHP نیز، قرار دهید. هر دو قطعه کد زیر درست می باشند.



<?php
echo(/*Quantity*/ 2 /*Operation*/ * /*Price*/ 150);
?>
همان طور که مشاهده می کنید، تمامی عبارات /*Quantity*/ و /*Operation*/ و /*Price*/ به عنوان توضیح مد نظر گرفته شده اند. علامت * که در بین دو عبارت /*Price*/ و /*Operation*/ قرار گرفته، علامت ضرب می باشد که دو عبارت 2 و 150 را در یکدیگر ضرب می نماید. خروجی این مثال، 300 می باشد.



<?php
echo(
2 #Quantity
* //Operation
150 #Price
);
?>
خروجی این مثال هم 300 خواهد بود.__________________

TAHA
11-06-2009, 07:20 PM
قسمت دوم آموزش

متغیرها (Variables) یا لیترالها (Literals)
متغیرها (که به آنها لیترال نیز می گویند)، پرکاربردترین چیز در PHP می باشند. به طور کلی متغیرها به دسته های زیر تقسیم می شوند:

متغیرهای متنی (رشته ای Strings)
متغیرهای عددی (اعداد صحیح، اعداد اعشاری، اعداد اعشاری با دقت مضاعف)
متغیرهای بولین (Boolean) که درست (True) یا غلط (False) می باشند
آرایه ها (Arrays)
برای ساخت متغیرها، از علامت دلار ($) استفاده می کنیم. بدین ترتیب که ابتدا یک علامت $ نوشته، سپس بعد از آن نام متغیر مورد نظر خود را می نویسیم. سپس یک علامت تساوی (=) گذاشته و مقدار آن متغیر را می نویسیم. دقت داشته باشید که نام متغیرها Case-Sensitive می باشند. این بدین معناست که دو متغیر alireza$ و Alireza$ برای PHP، دو متغیر متفاوت از هم می باشند.

PHP کد:




<?php

$name = "Alireza";
?>






در این مثال ما مقدار Alireza را که به صورت یک رشته (String) می باشد، درون متغیری به نام $name قرار داده ایم.
رشته ها معمولا در بین کوتیشنهای دوتایی (") یا کوتیشنهای تکی (') قرار می گیرند. در زیر درباره فرق این دو نوع کوتیشن بحث شده است.

متغیرها در کوتیشن تکی ترجمه نمی شود.

PHP کد:




<?php

$name = "Alireza";
echo ('My name is $name');
?>





خروجی این عبارت My name is $name خواهد بود. حال اگر همین کار را به وسیله کوتیشن دوتایی انجام می دادیم، خروجی به صورت My name is Alireza به نمایش در می آمد.

PHP کد:




<?php

$name = "Alireza";
echo ("My name is $name");
?>






در کوتیشن تکی، عباراتی نظیر \n یا \t مورد بررسی قرار نمی گیرند (این عبارات جلوتر مورد بررسی قرار می گیرند).

همان طور که در بالا گفته شد، می توانید رشته ها را در بین کوتیشنهای تکی یا دوتایی قرار دهید. حال فرض کنید که می خواهید داخل رشته خود، از علامت " یا ' نیز استفاده کنید. به عنوان مثال می خواهید عبارت My name is "Alireza" را بر روی مرورگر به نمایش در آورید. ممکن است برای این کار از کد زیر استفاده نمایید:

PHP کد:




<?php

echo("My name is "Alireza"");
?>





اما اجرای این کد سبب خطا می شود. چرا که PHP در هنگام برخورد با کوتیشن دوم، تصور می کند که رشته تمام شده است و در نتیجه مابقی عبارت که Alireza""); می باشد، برای آن نامعقول است. برای این کار می بایست قبل از علامت کوتیشنی که می خواهید در مرورگر به نمایش در آید، یک علامت Backslash (\) قرار دهید. یعنی کد بالا به صورت زیر در می آید:

PHP کد:




<?php

echo("My name is \"Alireza\"");
?>






پرکاربردترینهای Backslash به شرح زیر می باشد:
\n سبب ایجاد یک خط جدید در کد HTML (و نه در خروجی مرورگر) می شود.
\t سبب ایجاد یک Tab در کد HTML (و نه در خروجی مرورگر) می شود.
\\ سبب نمایش یک Backslash می شود.
\$ سبب نمایش علامت دلار می شود.
\" سبب نمایش کوتیشن دوتایی می شود.
برای درک بیشتر این کاربردها، به مثال زیر توجه کنید:

PHP کد:




<?php

echo("C:\\PHP\n");
echo("<table>");
echo("\n\t<tr>");
echo("\n\t\t<td>");
echo("\"Alireza\"");
echo("</td>");
echo("\n\t</tr>");
echo("\n</table>\n");
?>





خروجی این مثال به صورت زیر خواهد بود:






C:\PHP
"Alireza"




همچنین اگر Source صفحه را مشاهده کنید، عبارات به صورت زیر خواهند بود (برای مشاهده Source صفحه، از منوی View گزینه Source را انتخاب کنید (مرورگر IE)).







C:\PHP
<table>
<tr>
<td>"Alireza"</td>
</tr>
</table>