دوره H آموزش PHP
درس 1 – مفاهیم پایه ای PHP
اینبار، دورهی H از آموزشهایمان را برای PHP در نظر گرفتهایم؛ امیدواریم که این دوره را با شما دوستان عزیز بتوانیم به اتمام رسانده و موارد مفیدی را در کنار هم یاد بگیریم.
معرفی PHP
قبلا در مقالهی PHP چیست، به طور کامل به توضیح مفهوم و ماهیت PHP پرداختیم. اما برای خلاصه:
یک لیست کوتاه از آن چیزهایی که PHP قادر به انجام آن است:
- ایجاد محتوای پویا
- ایجاد کردن، باز کردن، خواندن، نوشتن، حذف کردن و بستن فایلها در سمت سرور
- جمع آوری دادههای فرم
- اضافه کردن، حذف و تغییر اطلاعات ذخیره شده در پایگاه داده شما
- کنترل دسترسی کاربر
- رمزگذاری اطلاعات
- و …
که البته اگر قصد برنامه نویسی برای چیزهای دیگری مثل یک وب سرویس برای اپلیکیشن خود را دارید، نیازی به یادگیری HTML نیست! چرا که HTML اساسا برای طراحی ظاهر وب سایت در مرورگرها مورد استفاده قرار میگیرد.
PHP بر روی سیستم عاملهای مختلف، از جمله ویندوز، لینوکس، یونیکس، مک ایکس، و غیره اجرا می شود.
این زبان تقریبا با هر سرور مدرنی مثل Apache و IIS سازگار است.
و همچنین از طیف گستردهای از پایگاههای داده پشتیبانی میکند.
تگهای PHP
برای نوشتن کد PHP در یک فایل متنی با فرمت php، ابتدا بخش مربوط به نوشتن کد را به صورت زیر باز میکنیم:
<?php
سپس کد خودمان را نوشته و در نهایت آن را به صورت زیر میبندیم:
?>
و در نتیجه:
<?php // کد پی اچ پی شما اینجا قرار میگیرد ?>
مثال Hello World
توجه: اگر شما هاست یا سروری تهیه نکردهاید، میتوانید از نرم افزارهایی مثل WampServer برای راه اندازی وب سرور در کامپیوتر خود استفاده کنید؛ تا بتوانید بدون تهیهی هاست یا سرور، خروجی کد خود را در کامپیوتر خود مشاهده کرده و بعدا میتوانید هاستی تهیه کرده و محتوای خود را درون آن قرار دهید تا افراد دیگر هم در صورتی که بخواهید بتوانند آن ها را ببینند.
نرم افزار Notepad ویندوز یا Notepad++ را باز کرده و کد زیر را درون آن وارد کنید.
<html> <head> <title>FullKade</title> <meta charset="UTF-8"> </head> <body> <?php echo "Hello World!"; ?> </body> </html>
سپس آن را با فرمت php ذخیره کنید. در نهایت آن را به هاست خود انتقال داده و از طریق وارد کردن آدرس آن را اجرا کنید.
خواهید دید پیام “Hello World” در صفحه چاپ میشود!
نکته 1: همانطور که میبینید، ما میتوانیم در یک فایل PHP از تگهای HTML نیز استفاده کنیم؛ ولی علاوه بر آن، از تگ PHP هم میتوانیم استفاده کنیم.
نکته 2: تمامی کدهایی که بین تگ PHP نوشته میشوند، تنها در سمت سرور اجرا شده و خروجی آن به کاربر داده میشود و کاربر نمیتواند به هیچ وجه کدهای PHP را ببیند! ولی تمامی کدهای HTML و CSS و JS به کاربر ارسال میشود که بدیهی است؛ چون این سه مورد در سمت کاربر (کلاینت) اجرا میشوند.
راه دیگر نوشتن کدهای PHP، استفاده از تگ script میباشد (همانند جاوا اسکریپت)! با این تفاوت که اینبار، نوع اسکریپت را PHP تعریف میکنیم:
<html> <head> <title>FullKade</title> </head> <body> <script language="php"> echo "Hello World!"; </script> </body> </html>
و اما سومین راه برای نوشتن کدهای PHP، استفاده از تگ کوتاه میباشد. به این صورت که در همان حالت اول، کلمهی PHP را حذف کرده و کد را بین <? ?> مینویسیم:
<? echo "Hello World!"; ?>
کلمهی کلیدی echo در PHP
از این کلمهی کلیدی برای چاپ خروجی استفاده میشود! در بالا دیدید که بعد از اجرای کد php، مقدار “Hello World” به جای آن قسمت از کد قرار گرفته و به کلاینت ارسال میشود. مثال:
<?php echo "I love FullKade!"; ?>
متن حتما باید بین دوعلامت ” یا ‘ نوشته شود.
علامت Semicolon ( ; )
هر دستور در PHP باید با سمیکالن به پایان برسد. مثل:
<?php echo "Full"; echo "Kade"; echo ".Com"; ?>
خروجی:
سوال: شاید بپرسید، ما که هرکدام از echo ها را جدا و در خط جدیدی نوشتهایم؛ پس چرا خروجی به هم چسبیده است؟!
توجه کنید که مهم این است ما بگوییم چه چیزی در خود خروجی اتفاق افتاده و نمایش داده شود! در حالی که در خود متن سورس کد، تنها برای زیبایی و بهتر دیده شدن این خط و فاصلههای اضافی را انداختهایم! در ادامه این موضوع را توضیح خواهم داد.
نکته: اگر با زبانهای برنامه نویسی دیگری آشنا باشید، میدانید که فاصلههای زیاد تاثیری در خروجی کد ندارند. بنابراین شما میتوانید هر سه echo را بعد از علامت ; و پشت سرهم، به صورت زیر بنویسید.
<?php echo "Full";echo "Kade";echo ".Com"; ?>
این فاصله ها صرفا برای تمیز دیده شدن کد میباشند! همچنین، این موضوع طبیعی است که اگر ما بعد از شروع تگ php، فاصله ندهیم و echo را بنویسیم، echo به کلمهی php خواهد چسبید! پس در اینجا ما به یک فاصله نیاز داریم؛ ولی فاصله و رفتن به خط جدید صرفا برای خواناتر شدن کد برای انسان است.
استفاده از تگ های HTML در echo
اگر خروجی سرور شما قرار است توسط یک مفسر HTML مثل مرورگر تفسیر شده و به نمایش دربیاید، میتوانید در echo از تگهای HTML نیز استفاده کنید.
<?php echo "<strong>Welcome back to FullKade</strong>"; ?>
اگر یادتان باشد، در بالا پرسیدیم که چگونه با قرار دادن هر echo در یک سطر جدا، خروجی به هم چسبیده بود! حالا شاید متوجه شده باشید؛ ولی اگر نشدید، اجازه دهید کمی بیشتر توضیح دهبم.
و اگر چیزی خارج از تگ PHP نوشته شده باشد، سرور کاری با آن ندارد و همان را به سمت کلاینت یا کاربر ارسال میکند.
وقتی این کلاینت از نوع مرورگر باشد، مروگر خروجی گرفته شده از سرور را با مفسر HTML، CSS، JS و … پردازش کرده و آن را به کاربر نمایش میدهد.
حالا ممکن است ما در نرم افزار سمت کلاینتی که خودمان توسعه دادهایم، تعریف کرده باشیم که مثلا وقتی خروجی را از سرور گرفتی، خط اول نام یک برنامه بوده و خط دوم لینک برنامه میباشد. و در اینجا بر خلاف مرورگر، ما ساختار دیگری را برای تفسیر خروجی گرفته شده از سرور برای نرم افزار خود تعریف کردهایم و کاری به مرورگر و HTML و … نداریم.
حالا برای جواب دادن به آن سوال میگوییم: چون مرورگر فایل را با ساختار HTML شناسایی میکند و ما هم میخواهیم یک صفحهی وب توسعه دهیم، پس باید از قواعد و ساختار HTML برای رفتن به خط بعدی (بعد از تفسیر خروجی) استفاده کنیم.
و اگر بخواهیم در خود متنِ خروجی سرور و شکل تفسیر نشدهی آن نیز به خط جدید برویم، از علامت خاص خود که در ادامه خواهیم گفت استفاده میکنیم ؛ با این حساب، شما اگر در مرورگر، سورس کد صفحه را بررسی کنید، خواهید دید که با محتوای صفحهی تفسیر شده خیلی متفاوت است.
اجازه دهید از علامت n\ در مثال زیر استفاده کنیم تا گفتهی بالا (رفتن به خط بعد در سورس کد) را درک کنید:
<?php echo "Full\nKade"; ?>
خروجی را مشاهده کنید:
سمت چپ: خروجی بعد از تفسیر با مفسر HTML در مرورگر
سمت راست: خود خروجی بدون تفسیر
حالا خودتان چندین n\ قرار دهید و سپس خواهید دید که خروجی خام (تفسیر نشده) و خروجی بعد از تفسیر داخل مرورگر چه تفاوتی باهم دارند.
سلام ی سوال ذهن منو درگیر کرده که وقتی echo رو مینویسیم اگر بخوایم ی متن فارسی نمایش داده بشه چیکار کنیم؟ و سوال دیگم اینه که چجوری اون متن که نوشتیم تنظیم کنیم که در کجای صفحه نمایش داده بشه؟ ایا این کار امکان پذیر هست یا در جلسه های بعدی بهش میپردازید؟؟
و سوال دیگم اینه که اگه بخوایم یه سیستم در سایت تعبیه کنیم که یک چیزی مثلا اسم کاربر رو در یک تکست باکس دریافت کنه بعد یک جا نمایش بده این کد درست هست؟
php get data-> text = $name; echo $name; ?>k?>
اون k رو نادیده بگیرید
ایا این کد برای چیزی که گفتم درست هست؟؟