PDA

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



kiahost
2013-02-08, 10:36
با سلام دوستان و عرض صبح بخیر
طبق بحث هایی که دیشب انجام شد من تصمیم گرفتم جزء اولین نفراتی باشم که میخام بحث های آموزشی رو گسترش بده
اینه که تصمیم گرفتم یکی از کابوس های بزرگ برنامه نویسای ایرانی (شایدم خارجی) رو اموزش بدم.
توضیحات در مورد زبان php رو همه تقریبا میدونید و تاریخچه و مبتکر طرح و ازین دست اطلاعات هم کاربرد انچنانی ندارن که بخایم در موردش
بحث کنیم و میخام صاف برم سر اصل مطلب و از جایی شروع کنیم(بالاخره باید از جایی شروع کنیم)
مطالبی که میخام براتون بنویسم نه کپی از سایتی هستش نه پی دی افی چیزی!!صرفا برداشت ها و تجربیات خودم بوده توی این چند ساله
البته قبل شروع تاپیک باید از جناب EM4D-M (http://forum.shopkeeper.ir/member.php?u=8566) تشکر کنم که قبلا یک مبحث از کار رو اموزش داده در تاپیک آموزش شئ گرایی پیشرفته در php قسمت اول (http://forum.shopkeeper.ir/showthread.php?t=13390) که از ایشون
تشکر میکنم .
دوستان بنده علامه ی php نیستم و به طبع ممکنه اشتباهاتی در اموزش بنده باشه ،از شما میخام که صبور باشید و در این تاپیک چیزی پست نکنید که
بشه ازش یه تاپیک اموزشی کامل دراورد (نه پرسش و پاسخ) بنابراین سوالی داشتید از پیغام خصوصی پیگیری کنید.
خب یاعلی....
بخش اول : آیا وب سایت ما از PHP پشتیبانی میکند؟؟؟
دوستان اسان ترین راه برای تشخیص اینکه وب سایت ما از PHP پشتیبانی میکند یا خیر،اول از همه پرسیدن این سوال از شرکت میزبان یا پشتیبان هاست خودتون
هستش که فضایی که خریداری کردید میتونه از PHP پشتیبانی کنه یا نه...دومین راه حل که میشه از ورژن PHP سرور مطلع بشید استفاده از این راه هستش.
1- در ابتدا یک ویرایشگر متن ساده باز کنید و کد زیر رو در یک صفحه ی خالی اون وارد کنید :

<?php echo phpversion(); ?>
2-فایل رو به اسم دلخواه (ولی ترجیحا) phpversion.php ذخیره کنید (مطمئن بشید که سیستم عامل پسوند تکست رو به اخر فایلتون اضافه نمیکنه!!)
3- فایل phpversion.php رو مثله یک صفحه ی html روی هاست خودتون اپلود کنید و داخل مرورگر ادرس همون فایل رو بدید تا نمایش بده اطلاعاتشو.
ادرسی مثه :

http://example.com/phpversion.php
خب دوستان گرامی شما باید الان یک شماره سه قسمتی ببینید توی مرورگرتون مانند 5.3.3 یا 5.2.0 ،وقتی این شماره رو دیدید یعنی اینکه این فضای میزبانی از
زبان php پشتیبانی میکنه.
اگر پیغامی دریافت کردید که چیزی شبیه به parse error داد این به معنی این هستش که php پشتیبانی شده ولی شما فرمان یا کد بالا رو اشتباه تایپ کردی!!
و اگر هم تنها کد اصلی رو دیدید یعنی خروجی نداد بهتون که کلا php پشتیبانی نمیشه ...

.................................................. .........

این پست توسط عبارت زیر به روز شده است :

خب ادامه ی آموزش
انتخاب مکان ازمایش صفحه ها
برخلاف صفحه های وب معمولی ،نمی توان به راحتی در ویندوز اکسپلورر روی فایلهای php دوبار کلیک کرده و انها را در مرورگر ببینید.
کدهای php باید تجزیه شوند (parse) پردازش خودمون ---که این کار توسط یک سرور انجام میشه که از php پشتیبانی کند.
اگرهم بخواهید مستقیم با php کار کنید ،باید از هاست و وبسایت خودتون به عنوان یه بستر ازمایشی استفاده کنید.با این حال محیط های نرم افزار هایی مثه
wamp -xampp بهتون این اجازه رو میده که داخل همون کامپیوتر خودتون این امکانات رو داشته باشید و بتونید خروجی php بگیرید.

موارد لازم جهت استفاده و نصب یک محیط ازمایشی برای php در ویندوز:(من خودم از لینوکس استفاده میکنم ولی خب ویندوز بهتره استثنا توی این زمینه)
برای ازمایش صفحه های php روی کامپیوتر باید موارد زیر رو نصب کنید:
1- یک سرور وب (مانند آپاچی (apache) یا IIS (اینکه اینها چی هستن و ماهیتا چه کاری انجام میدن از حوصله ی این بحث خارجه)
2- php
برای کار کردن با یک بانک اطلاعاتی ، به mysql و یک ابزار به اسم phpmyadmin نیاز خواهید داشت.تمام نرم افزار های مذبور رایگان هستن(نگران نباشید)!!
خب من برای شما توی ویندوز 64 بیتی نرم افزار wamp رو پیشنهاد میکنم که به طور کامل همه رو اتوماتیک خودش نصب میکنه و بسیار عالیه
برای ویندوز های 32 بیتی هم هر دو پیشنهاد میشه یعنی هم wamp ,xampp ...
از ضمیمه ی پست میتونید این نرم افزار رو که پایه ی کار ما هست دانلود کنید(پیر شدم تا اپلودش کردم~x(~x( )
انتخاب سرور وب
اغلب نصب های php روی سرور وب آپاچی اجرا می شود.با این حال ویندوز نیز دارای وب سرور مخصوص به خود است. internet inforation services یا به اختصار
IIS که این مورد هم از php پشتیبانی میکنه در حقیقت مایکروسافت برای بهبود عملکرد IIS برای پشتیبانی php بسیار کار کرده و به همین خاطر پشتیبانی اون در سطح
اپاچی هستش.اما خب یه سوال عمومی مطرح میشه که کدوم رو باید انتخاب کنیم؟؟:-b:-b
پاسخ این سوال بستگی به این داره که ایا صفحه های وب خود را با asp یا asp.net ایجاد میکنید یا تمایل دارید در اینده به این کار یاخیر...[-X
asp.net به IIS نیاز داره.شما میتوانید اپاچی رو هم روی کامپیوتر خودتون نصب کنید که قبلا IIS نصب کردید ولی خب هر دو چون از پورت 80 استفاده میکنن.همزمان
نمیشه اجراشون کرد.
به جز وقتی که زبان برنامه نویسی تون asp هستش (که من توصیه نمیکنم چون تاپیک اموزش php هست:-j ) توصیه میکنم که اپاچی رو نصب کنید.
خب توی بسته نرم افزاری که دارید دانلود میکنید قطعا;))!! این موارد به صورت کامل وجود داره و میتونید استفاده کنید...

قسمت بعدی دیگه منتظرتون نمیذارم و میریم سراغ نوشتن اسکریپت های php...:)>-:)>-

این پست توسط عبارت زیر به روز شده است :

خب این قسمت ممکنه یکم ترسناک باشه (منظورم کدنویسیش هست اونم واسه کسایی که مدت زیادی با html کار کردن;;) )
خب بریم سر اصل مطلب :
هر صفحه ی php باید دارای موارد زیر باشد:
1-پسوند صحیح نام فایل که معمولا .php هستش.
2-تگ های php باز و بسته که هر قسمت از کد php رو در خودش خواهد داشت.(البته بعضی وقتا میشه تگ php بسته رو گاهی پیچوند.البته بعدا میگم کجا:d )
و اینکه یه صفحه ی php توش عناصر زیر به طور معمول دیده میشه :
1- متغیر های (variables ) که به عنوان یک جا نگه دار برای مقادیری که تغییر میکنند یا هنوز مشخص نیستند عمل میکنه.
2- آرایه هایی (arrays ) برای نگه داشتن چند مقدار
3- دستورات شرطی برای گرفتن تصمیم
4-حلقه هایی (loops ) برای انجام وظایف تکراری
5- توابع (functions ) یا اشیاء (objects) برای انجام

خب یواش یواش یه نگاهی به هرکدوم ازینا میندازیم که کار رو هم با تگ باز وبسته شروع میکنیم...^:)^^:)^

این پست توسط عبارت زیر به روز شده است :

php یه زبان برنامه نویسی مبتنی بر سرور است.این معنی رو داره که سرور کد php شما رو پردازش میکنه و تنها نتایج رو به مرورگر ارسال میکنه که معمولا به صورت
html هستش .به دلیل اینکه تمام این اعمال روی سرور انجام میشه .باید به سرور بگید که صفحات شما حاوی کد php هستند.این نیازمند دو مرحله ی ساده است:

:):)
1- به هر صفحه php یک پسوند نام فایل صحیح بدهید که به صورت پیش فرض php. است.از هیچ پسوند دیگری به غیر از php. استفاده نکنید مگر اینکه توسط شرکت میزبان
شما چیز دیگری گفته شود(که بعید میدونم ;));));)) )
2- تمام کد php رو درون تگ های php قرار دهید.

تگ باز به صورت
<? و تگ بسته به صورت
?> میباشد. اگر این تگ ها را در خط یکسانی با کد قرار دهید،نیازی به فاصله ی قبل از تگ باز
وبعد از تگ بسته نیست،اما باید یک فاصله بعد از php در تگ باز قرار دهید:

<p> this is html with embedded php<?php //some php code ?>.</p>
وقتی بیش از یک خط کد php رو مورد استفاده قرار میدهید ، بهتر است که تگ های باز و بسته رو در خط های جدا گانه قرار بدید تا کد شما واضح تر و ظاهر بهتری
داشته باشه.
به علاوه میتوانید از
<? به عنوان یه نسخه کوتاه از تگ باز استفاده کنید با این حال همه ی سرور ها از این تگ پشتیبانی نمیکنن.پس از همون

<?php استفاده کنید خیلی بهتره...

این پست توسط عبارت زیر به روز شده است :

نمیدونم حالا چرا این پست های من همش میچسبه به هم و میره توی یک پست :-b:-bولی خب مهم نیست ادامه بدیم مطلب رو به جای حساسش داریم میرسیما

دوستان php یه زبان جاسازی شده است (embedded ) .یعنی میتونید کدهای php رو درون صفحه های عادی وب هم قرار بدید.
وقتی شخصی سایت شما رو بازدید کرده و درخواست یک صفحه ی php را میدهد، سرور ان را به موتور php خود میفرستد.موتور نیز صفحه رو از بالا به پایین خوانده
و به دنبال تگ های php میگردد. کد های html دست نخورده باقی میمانند اما هروقت موتور php با یک تگ
<?php
مواجه شود شروع به پردازش کد کرده و این کار را انقدر ادامه میدهد که به تگ بسته برسد یعنی همون | <? ...
اگر کد php شما خروجی داشته باشد در همان مکان قرار میگیرد.
تذکر:دوستان میتونید از چندین قسمت کد php روی یک صفحه وب استفاده کنید اما اونا رو نمیتونید درون یکدیگر قرار بدید...<):)

راستی php همیشه خروجی مستقیم برای مرورگر تولید نمیکند .برای مثال ممکن است محتویات یک فرم ورودی را قبل از ارسال یک پیغام ایمیل یا قرار دادن اطلاعات درون
یک بانک اطلاعاتی بررسی کند.بنا براین بعضی از کد ها بالاتر یا پایین تر از کد html اصلی یا در یک فایل خارجی قرار میگیرند.اما کدی که خروجی مستقیم تولید میکنه
همیشه در جایی قرار میگیره که خروجی باید درانجا ظاهر بشه.

خب دیگه دوستان برای امروز خوب بود...تاپیک هر روز بروز میشه و خدا بخاد تا اخر هفته ی بعد ما مبحث کدنویسی رو 40 درصد جلو بردیم .دنبال این هستم که مثال عملی
بیارم توی تاپیک نه فقط تئوری و کد باشه فقط موندم چجوری؟؟؟
ایشالا خدا توان و نیرویی در وجودم قرار بده تا کاری رو که شروع کردم به خوبی به پایان برسونم...متشکرم از توجهتون.

kiahost
2013-02-10, 13:31
خب سلام دوستان شب همگی بخیر و خدا قوت .بدون صغری و کبری چیدن بریم سر اصل مطلب و اموزش امشب...
به غیر از قرار دادن php در html ،خیلی ها ترجیح میدن تا کدهایی که زیاد استفاده میشن رو در یک فایل اکسترنال قرار بدن(فایل خارجی) وقتی یک فایل حاوی
تنها کد php باشد،تگ

<?php
اجباری هستش اما تگ بسته اجباری نیست!در حقیقت بهتره بگیم بهتره تگ بسته رو وارد نکنید اصلا!!اما اگر فایل شما حاوی html بعد از php هستش حتما باید از تگ
بسته یا :

?>
استفاده کنید.

اضافه کردن توضیحات به اسکریپت ها
php با هرچیزی که بین تگ های باز و بسته php قرار داشته باشه به عنوان دستوراتی برای اجرا رفتار میکند مگر اینکه شما با علامت گذاری قسمتی از کد به عنوان توضیح
(comment) بگویید که این کار را انجام ندهد .به سه دلیل به توضیحات نیاز دارید:
1- برای قرار دادن یک توضیح درباره عملکرد کد(البته چون کد شما کپی میشه و کپی رایتش عوض میشه این الزامی نیست!;)) )
2- برای قرار دادن یک جانگه دار برای کد های بعدی که اضافه میشه .(مثلا در یه قسمت قصد دارید در فایل header.php بعد از لوگو اسلایدر قرار بدید
3-برای غیر فعال کردن موقتی قسمتی از کد
وقتی شروع به ایجاد یک اسکریپت میکنید در ابتدا ممکنه فکر کنید که لازم نیست چیزی درون کدها قرار بدید که پردازش نمیشه ولی بعدا میفهمید که چقدر به سازماندهی
و نظم دهی و اسان تر شدن کد نویسی کمک میکنه.
توضیحات تک خطی
معمول ترین روش اضافه کردن یک توضیح تک خطی ،قرار دادن دو اسلش در ابتدای ان است مانند این:

// this is a comment and will be ignored by the php engine
php از هرچیزی که بعد از دو اسلش و قبل از انتهای خط باشد چشم پوشی میکند و بنابراین میتوانید توضیحات رو در سمت راست کد هم قرار بدید:

$start = 2006; // this is a valid comment
توضیحات دستورات php نیستن پس اونا رو با ; خاتمه ندید (در ادامه توضیحات بیشتری رو میدم )
یه روش دیگه استفاده از علامت # (پوند) هستش به این صورت میتونید کامنت یا توضیحات رو اضافه کنید:

# this is another type of comment that will be ignored by php engine

@startyear = 2008; # this is also works as comment
به دلیل اینکه وقتی علامتهای پوند کنار یکدیگر قرار میگیرن ظاهر جالبی و جلب توجه کننده تری دارن بعضی مواقع توضیحات شروع شده با علامت پوند برای مشخص کردن
یه متن طولانی از اسکریپت استفاده میشه مثل:

#######################
## menu section ##
##########################

توضیحات چندخطی
اگر توضیحی که میخواید اضافه کنید چند خط رو اشغال میکنه،بع غیر از ب کار بردن دو اسلش در ابتدای هر خط ،میتونید از شیوه مشابهی از CSS ،جاوا اسکریپ ،اکشن اسکریپت استفاده کنید ودراین حالت هر چیزی که بین /* و */ قرار بگیره حکم یه کامنت رو داره ...
استفاده از متغیر ها برای ذخیره مقادیر
توانایی هایی مثه نشان دادن خودکار سال روی دو قسمت مهم از php تاکید میکنه: متغیرها (variables ) و تابع ها (functions ) .
تابع ها کاری را انجام میدهند ،انها وظایفی از پیش تعیین شده را انجام میدهند ماننده دریافت تاریخ کنونی و تبدیل ان به فرم قابل خواندن..توابع رو یکم جلوتر توضیح میدیم
و الان به سراغ متغیر ها میریم.
متغییر نامی است که به چیزی داده میشود که ممکن است تغییر کرده یا از اکنون مقدار ان را نمیدانید.متغیرها در php همیشه با یک علامت دلار ($) شروع میشوند.
با این که مفهوم متغیرها به مطلق میرسه اما ما از متغیرها در زندگی عادی نیز استفاده میکنیم...
ادامه اموزش برای فردا...
فردا ایشالا نمونه فایل درست میکنم از کد و متغیرها و البته با همون نرم افزار سرور مجازی ساز ویندوز wamp براتون خروجی هم میگیرم.
یاعلی شب همگی بخیر

این پست توسط عبارت زیر به روز شده است :

خب دوستان ظهرتون بخیر بحث آموزش رو ادامه میدیم با مفهوم نام گذاری متغیرها و نسبت دادن مقادیر به متغیر ها
توجه داشته باشید که تا وقتی قوانین زیر رو در زهن خودتون داشته باشید میتونید از هر نامی برای یک متغیر استفاده کنید:
1-متغیر ها همیشه با یک علامت $ شروع میشوند.
2-اولین کاراکتر بعد از $ نمیتواند یک عدد باشد.
3-هیچ فاصله یا علامت نشانه گذاری مجاز نیست به جز خط زیر (_)(اندرلاین)
4-نام های متغیر به بزرگی و کوچکی حروف حساس هستند :مثلا

$Startyear
با مورد زیر یکسان نیست

$startyear
وقتی برای متغیر های اسم انتخاب میکنید بهتره دوستان اسمی رو بذارید که ربط به کاربردش داشته باشه مثلا برای تاریخ قطعا میتونید از $calendar یا موارد مشابه استفاده کنید
ولی اسم نامربوط بذارید بعد یه مدت وقتی تعداد متغیر ها زیاد شدند واقعا پیدا کردن یه متغیر سخت میشه.
به دلیل اینکه در اسم متغیر ها از کاراکتر فاصله نمیتونید استفاده کنید بهتره بخش دوم اسم متغیر رو با حرف بزرگ بنویسید مثلا:

$startYear
اینطوری دوتا کلمه باهم قاطی نمیشه.(به این سبک از نام گذاری توی ادبیات برنامه نویسی میگن کوهان شتری)یا میتونید بین دوکلمه خط زیر (_) یاهمون اندرلاین خودمون رو
بذاریدکه جدا بمونن و قاطی نشن.در ضمن برای اختصار نویسی اقدام نکنید چون به همون دلیلی که گفتم (زیاد شدن متغیرها) پیدا کردن و درک متغیرو کارکردش سخت میشه
براتون پس فعال باشید و حتما اسم رو کامل بنویسید.
تذکر : به صورت قرار دادی

$j-$i-$k
به عنوان شمارنده برای تعداد دفعات تکرار یک حلقه (loop) مورد استفاده قرار میگیره و $e هم در بررسی خطا استفاده میشه.

نسبت دادن مقادیر به متغیرها:
متغیرها میتوانند مقادیر خودشان را از چندین منبع دریافت کنند:
1-ورودی کاربر از طریق فرم انلاین
2-یک بانک اطلاعاتی خاص
3-یک منبع خارجی مانند یک فایل xml
4-نتیجه یک محاسبه
5-نسبت دادن مستقیم در کد php
مقادیر از هرجایی که امده باشند ،همیشه توسط علامت تساوی (=) نسبت داده میشوند مانند این:

$variable = value
متغیر در سمت چپ علامت تساوی قرار میگیرد و مقدار در سمت راست.به دلیل اینکه علامت تساوی مقداری را نسبت میدهد ،انرا عملگر نسبت دهی (assigment operator)
می نامند . این یکی از بیشترین خطاهای دوستان تازه کار میشه (شامل خودم :d ) بسیاری از کاربران برای بررسی مساوی بودن دو متغیر از علامت مساوی استفاده
میکنند که باعث خطا میشه(در قسمت های بعدی انواع خطاهای مهم php رو بررسی میکنیم و راه حل رفعشم میگیم خدمتون ).
در php برای بررسی تساوی از عملگر (==) استفاده میشه .تفاوت این دوتا رو جلوتر خدمتون توضیح میدم.

خاتمه دادن به دستورات با یک نقطه ویرگول (;)
php به صورت یک سری از دستورات نوشته میشه .هر دستور دوستان ،به صورت عادی به موتور php میگه که یه کار خاص رو انجام بده و همیشه باید با یک نقطه ویرگول
خاتمه پیدا بکنه مانند :

<?php
do this;
now do something else;
<?
همانند همه ی قانون ها بازم استثنایی وجود داره :اگر تنها یه دستور در قطعه کد وجود داشته باشه میتونید نقطه ویرگول رو نذارید .بر خلاف جاوا اسکریپت ،اکشن اسکریپت،
php به صورت خودکار انتهای خط ها رو شناسایی نمیکنه (متاسفانه:-s ) این یه نتیجه جانبی خوب هم داره که میتونید یه دستور طولانی ایجاد کنید و در چند خط پخش کنید
تا خوندن کد اسون تر بشه .اما php مثه html از فاصله سفید درون کد چشم پوشی میکنه و از نقطه ویرگول برای مشخص کردن مکان اتمام دستورات و شروع دستور بعدی
استفاده میکنه.

استفاده از آرایه ها برای ذخیره مقادیر چند تایی
مثه دیگر زبان های برنامه نویسی، php هم به شما اجازه ذخیره مقادیر مختلف در یک نوع خاص از متغیر های با نام ارایه ها (array) رو میده.
ساده ترین روش برای تصور کردن ارایه ها در نظر گرفتن یه لیست خرید هستش.با اینکه هر مورد از دیگری جدا هستش ،اما میتونید به کل مجموعه یه نام بدهید.
مثلا :
خودکار

$shopping_list[0]
مداد :

$shopping_list[1]
و ....
که در اینجا میگیم متغیر

$shopping_list[0]
شامل دوتا میشه یعنی خودکار و مداد :

$shopping_list[0]
$shopping_list[1]
پس نتیجه میگیریم که :
آرایه ها متغیرهایی هستن که میتوانند چند مورد جداگانه را در خود ذخیره کنند مثه یه لیست خرید که در بالا مثال زده شد.
هر مورد -یا هر عنصر ارایه (array element) -به وسیله یه شماره در براکت مربعی کنار متغیر ارایه مشخص میشوند.php این شماره ها رو به صورت خودکار اعمال میکنه اما
مهم اینه که بدونید شماره ها همیشه از صفر شروع میشن.نه از یک!! بنابراین عنصر اول ارایه ،در مثال ما خودکار به عنوان $shopping_list[0]
شماره مشخص کننده ارایه به عنوان شاخص (index ) یا کلید (key ) ارایه شناخته میشود و این نوع ارایه نیز به عنوان ارایه دارای شاخص نامیده میشود.