بایگانی برچسب: s

فایل XML چیست و چگونه و با چه ابزاری می‌توان آن را اجرا کرد؟

در دنیای رایانه‌ها فایل‌هایی با پسوند XML. وجود دارند که در این مطلب می‌خواهیم با آن‌ها آشنا شویم. عبارت XML مخفف «Extensible Markup Language» و به معنای «زبان نشانه‌گذاری گسترش‌پذیر» است. XMLها در واقع فایل‌هایی هستند که از متن خالص تشکیل می‌شوند و شامل برچسب‌های سفارشی (Tag) هستند که ساختار و ویژگی‌های اسناد دیگر را مشخص می‌کنند.

XML چیست؟

XML یک زبان نشانه‌گذاری است که توسط کنسرسیوم شبکه‌ی جهانی وب (W3C) ساخته شده است تا راهی برای ساخت اسنادی به وجود بیاورد که هم برای انسان و هم برای ماشین قابل فهم باشد. این کار از طریق برچسب‌هایی انجام می‌شود که ساختار سند و نحوه‌ی ذخیره‌سازی و انتقال آن را مشخص می‌کنند.

شاید بهتر باشد آن را با زبان نشانه‌گذاری دیگری مقایسه کنیم که احتمالا به آن آشنا هستید؛ زبان نشانه‌گذاری فرامتن یا HTML که از آن برای کدگذاری صفحات وب استفاده می‌شود. HTML از یک سری علامت‌های نشانه‌گذاری از قبل تعریف شده برای مشخص کردن قالب محتوای صفحات وب استفاده می‌کند. برای مثال، کد زیر از تعدادی تگ برای بولد کردن یا کج کردن برخی حروف استفاده کرده است:

This is how you make <b>bold text</b> and this is how you make <i>italic text</i>

چیزی که XML را از سایر زبان‌های نشانه‌گذاری متمایز می‌کند، گسترش‌پذیری آن است. بر خلاف HTML، در XML دستورات از قبل مشخص شده‌ای وجود ندارند. به جای آن، XML به کاربران خود اجازه‌ی ساخت هرگونه علامت نشانه‌گذاری برای معرفی محتوای خود را می‌دهد که باعث به وجود آمدن مجموعه‌ای بی‌نهایت از علائم خودساخته می‌شود.

همچنین، HTML زبانی است که برای نمایش محتوا به وجود آمده است در حالی که XML یک زبان معرفی داده است که برای ذخیره‌ی داده‌ها مورد استفاده قرار می‌گیرد. معمولا از XML به عنوان پایه‌ی اسناد دیگر استفاده می‌شود. در ادامه تعدادی مثال از کاربردهای XML آمده است که شاید به آن‌ها آشنا باشید:

  • RSS و ATOM هر دو با استفاده از XML نحوه‌ی عملکرد خوراک خوان‌ها را مشخص می‌کنند.
  • «Microsoft.NET» از XML به عنوان فایل‌های پیکربندی خود استفاده می‌کنند.
  • «Microsoft Office 2007» و بالاتر از XML برای ساختار پایه‌ی اسناد استفاده می‌کنند. در واقع حرف X که در انتهای پسوند فایل‌های ورد، یعنی DOCX قرار دارد به همین موضوع اشاره می‌کند. همچنین در اکسل (XLSX) و پاورپوینت (PPTX) نیز به همین شکل است.

پس اگر به فایل XML خاصی برخوردید، نمی‌توانید مطمئن باشید که برای کدام اپلیکیشن است. معمولا هم این مساله مشکلی ایجاد نمی‌کند، مگر این که خودتان طراح فایل XML باشید.

چگونه یک فایل XML را باز کنیم؟

برای باز کردن فایل‌های XML راه‌های متفاوتی وجود دارد. این فایل‌ها را می‌توانید با هر ویرایشگر متنی باز کنید، در هر مرورگری مشاهده نمایید یا حتی در وبسایت‌های مخصوصی آن‌ها را مشاهده، ویرایش یا حتی به سایر فرمت‌ها تبدیل کنید.

استفاده از ویرایشگر فایل در صور‎ت استفاده‌ی زیاد از فایل‌های XML

از آنجایی که فایل‌های XML تنها متن هستند، می‌توانید به سادگی از هر ویرایشگر متنی برای مدیریت آن‌ها استفاده کنید. مساله‌ای که وجود دارد تعداد زیاد ویرایشگرهای متن است که برای کار با ساختار XML طراحی نشده‌اند. شاید نرم‌افزاری نظیر «Notepad» برای باز کردن و بررسی کلی یک فایل XML مناسب باشد، ولی قطعا نرم‌افزارهای بهتری هم برای این کار وجود دارند.

بر روی فایل XML راست کلیک کرده و از قسمت «Open With» نرم‌افزار «Notepad» را انتخاب نمایید.

توجه داشته باشید که ما در این مثال از ویندوز استفاده کرده‌ایم، ولی در هر سیستم‌عاملی که باشید قطعا ابزارهایی برای مدیریت فایل‌های متنی وجود دارد. همچنین می‌توانید به دنبال ابزارهای شخص ثالث مناسب سیستم‌عامل خود نیز بگردید.

اینک فایل XML شما باز خواهد شد، ولی همان‌طور که مشاهده می‌کنید، قالب‌بندی مناسبی نداشته و کل محتوای آن در چند خط طولانی نمایش داده شده‌اند.

پس با این که «Notepad» برای بررسی سریع و کلی یک فایل XML می‌تواند مناسب باشد، ولی قطعا با استفاده از ابزارهای پیشرفته‌تری نظیر «++Notepad» وضعیت بهتری خواهید داشت. در تصویر زیر مشاهده می‌کنید که همان فایل را در «++Notepad» باز کرده‌ایم:

برای دانلود آخرین نسخه «++Notepad» می‌توانید از این لینک استفاده کنید.

استفاده از مرورگر وب برای مشاهده‌ی داده‌های ساختار یافته

اگر نیاز خاصی به ویرایش فایل‌های XML ندارید ولی گاهی اوقات نیاز به مشاهده‌ی آن‌ها پیدا می‌کنید، می‌توانید از مرورگر محبوب خود استفاده نمایید. احتمالا مرورگر پیشفرض سیستم شما نرم‌افزار پیشفرض اجرای فایل‌های XML نیز خواهد بود. در این صورت تنها با دابل کلیک کردن بر روی فایل XML می‌توانید آن را در مرورگر خود مشاهده کنید.

اگر از این طریق موفق به اجرای آن نشدید، می‌توانید بر روی فایل خود راست کلیک کرده و از طریق منوی «Open With» مرورگر مورد علاقه‌ی خود را برگزینید. در این مثال ما از «Google Chrome» استفاده کرده‌ایم.

پس از باز کردن فایل، محتوای آن را با ساختاری بسیار زیبا مشاهده خواهید کرد. مسلما خروجی آن به زیبایی چیزی مثل کدهای رنگ بندی شده در «++Notepad» نخواهد بود، ولی بسیار بهتر از خروجی «Notepad» است.

استفاده از ویرایشگر آنلاین برای مشاهده، ویرایش یا تبدیل فایل‌های XML

اگر گاها نیاز به ویرایش فایل‌های XML دارید و نمی‌خواهید یک ویرایشگر متن جدید دانلود کنید، یا اگر قصد تبدیل فرمت فایل XML به فرمتی دیگر را دارید، چند وبسایت وجود دارند که ابزارهای مورد نیاز برای کار بر روی XMLها را به صورت رایگان در اختیارتان قرار می‌دهند. «TutorialsPoint.com» ،«XMLGrid.net» و «CodeBeautify.org» هر سه به شما اجازه‌ی ویرایش فایل‌های XML را می‌دهند. پس از این که کار ویرایشتان به اتمام برسد، می‌توانید فایل XML جدید را دریافت کرده و یا حتی آن را با فرمت دیگری دانلود نمایید.

برای مثال ما از وبسایت CodeBautify.org استفاده می‌کنیم. صفحه به سه بخش تقسیم شده است. در سمت چپ فایل XML خود را مشاهده می‌نمایید. در وسط صفحه چندین گزینه در اختیارتان قرار دارد. در سمت راست نیز نتیجه‌ی برخی از گزینه‌ها را می‌بینید. برای مثال، در تصویر زیر فایل XML کامل ما در سمت چپ قرار دارید و پس از زدن گزینه‌ی «Tree View»، خروجی آن به صورت درختی در سمت راست نمایش داده می‌شود.

گزینه‌های موجود در صفحه به طور کامل در زیر آمده‌اند:

از گزینه‌ی «Browse» برای آپلود فایل XML جدید، و از گزینه‌ی «Load URL» برای بارگذاری یک فایل XML از یک منبع آنلاین استفاده کنید.

همانطور که در بالا مشاهده کردید، دکمه‌ی «Tree View» داده‌های ما را با ساختاری درختی و زیبا به ما نشان می‌دهد. در این حالت تمام تگ‌ها در سمت چپ با رنگ نارنجی، و مقادیر آن‌ها در سمت راست با رنگ مشکی نمایش داده می‌شوند.

گزینه‌ی «Beautify» داده‌های ما را به ساختاری زیبا و خوانا تبدیل کرده و در پنل نتایج (پنل سمت راست) نمایش می‌دهد.

گزینه‌ی «Minify» داده‌های شما را با حداقل فاصله در میان آن‌ها نمایش می‌دهد. این گزینه تمام تلاش خود را می‌کند تا تمام داده‌های شما را در یک خط خلاصه کند. این گزینه زمانی کاربرد دارد که قصد کوچک کردن حجم فایل را داشته باشید. البته درست است که این گزینه در فضا صرفه‌جویی می‌کند، ولی این قضیه به قیمت کاهش خوانایی فایل تمام خواهد شد.

در نهایت نیز می‌توانید با استفاده از گزینه‌ی «XML to JSON» فایل XML را به فایل «JSON» تبدیل کنید. دکمه‌ی «Export to CSV» به شما اجازه‌ی ذخیره‌ی داده‌ها در فایل‌های «CSV» را می‌دهد. در ادامه نیز با کلیک بر روی دکمه‌ی «Download» می‌توانید فایل خود را با تمام تغییراتی که در آن اعمال کرده‌اید دانلود نمایید.

منبع: فرادرس

آموزش PHP – جلسه چهاردهم: ویرایش داده در بانک اطلاعاتی MySQL

اگر پیگیر سری آموزشی پی‌اچ‌پی ما بوده باشید، می‌دانید که در چند جلسه قبل در مورد ارتباط با بانک اطلاعاتی MySQL صحبت کرده‌ایم. در این جلسه می‌خواهیم روش ویرایش داده‌ها را در بانک اطلاعاتی MySQL از طریق پی‌اچ‌پی به شما آموزش دهیم. در ادامه با ما همراه باشید.

در ادامه سری آموزش پی‌اچ‌پی قصد داریم تا روش ویرایش داده‌هایی که در بانک اطلاعاتی MySQL ذخیره کرده‌ایم را به شما آموزش دهیم. در کار با بانک‌های اطلاعاتی پیش از این نیز گفتیم که چند عملیات اصلی وجود دارد. در جلسات قبل روش اتصال به MySQL، افزودن داده‌ها و خواندن داده‌ها را مرور کردیم. اما یکی از مهمترین عملیاتی که حتما به آن نیاز پیدا می‌کنید ویرایش داده‌های ذخیره شده است.

در واقع می‌توان ویرایش اطلاعات در MySQL را ترکیبی از خواندن و درج داده دانست.

ویرایش داده‌ها در بانک اطلاعاتی MySQL

ابتدا مثل همیشه نرم‌افزار سرور مجازی Xampp را باز کرده و سرور آپاچی و مای‌اس‌کیو‌ال را اجرا کنید. پوشه cms که مربوط به پروژه ما می‌شود را باز کرده و یک فایل جدید به نام edit.php ایجاد کنید. در این فایل قصد داریم همانند روشی که اطلاعات را در فایل index به نمایش درآوردیم، لیست مطالب را نشان دهیم اما با این تفاوت که این‌بار فقط عنوان مطالب را نمایش می‌دهیم و در کنار هر مطلب یک گزینه برای ویرایش آن قرار می‌دهیم. حال کدهای زیر را در این فایل قرار داده و فایل را ذخیره کنید.

<!DOCTYPE html>

<html dir=”rtl” lang=”fa-IR”>

<head>

<title>ویرایش مطلب</title>

<meta charset=”utf-8″ />

</head>

<body style=”font-family: tahoma; font-size:14px;”>

<center>

<?php

include (“config.php”);

//select all records from posts table

$get_query = mysql_query(“SELECT * FROM `posts`”);

//now using while for get each record sepratly and show it to web browser

while ($fetch_result = mysql_fetch_array($get_query))

{

$postTitle = $fetch_result[‘title’];

$postText = $fetch_result[‘text’];

$postId = $fetch_result[‘id’];

echo “<h2><a href=single.php?id=$postId>$postTitle</a> (<a href=editpost.php?id=$postId>ویرایش</a>)</h2>”;

}

?>

</center>

</body>

</html>

حال به بررسی کد بالا می‌پردازیم. ابتدا فایل config.php را در صفحه فراخوانی کرده‌ایم تا اتصال به بانک اطلاعاتی انجام شده و سپس جدول مورد نظر ما برای انجام عملیات‌ مختلف انتخاب شود. سپس همانند آنچه در مورد خواندن اطلاعات و در فایل index.php انجام دادیم، در این فایل نیز عنوان مطالب را با یک کوئری از بانک اطلاعاتی MySQL دریافت کرده و سپس آن‌ها را نمایش می‌دهیم. تفاوت این فایل با فایل index.php در این است که اینجا متن مطلب را نمایش نمی‌دهیم و در عوض، در جلو عنوان هر مطلب یک لینک با عنوان ویرایش قرار داده‌ایم و لینک آن را به فایلی به نام editpost.php ست کرده‌ایم. همانند لینک ثابتی که برای نمایش هر مطلب در فایل index ایجاد کردیم در این فایل نیز یک لینک پویا برای ویرایش هر مطلب ایجاد کرده‌ایم. 

از آنجا که شناسه id هر مطلب منحصر به فرد است، همین مشخصه از هر پست را برای ایجاد لینک منحصر به فرد ویرایش هر مطلب بکار برده‌ایم. بنابراین با کلیک روی لینک ویرایش هر مطلب، شناسه id آن مطلب را به فایل editpost.php ارسال می‌کنیم تا در آن فایل با دستور GET و مانند آنچه در بخش آموزش فرم‌ها توضیح داده بودیم، شناسه مطلب مورد نظر را دریافت کرده و براساس آن شناسه اطلاعات پست انتخاب شده را از بانک اطلاعاتی دریافت کنیم. پس از اجرای فایل edti.php باید صفحه‌ شما شبیه به زیر باشد. 

a078f562-2738-4bcf-8c59-190d65d3be5aحال یک فایل جدید به نام editpost.php ایجاد کنید و کدهای زیر را در آن قرار دهید.

<!DOCTYPE html>

<html dir=”rtl” lang=”fa-IR”>

<head>

<title>ویرایش مطلب</title>

<meta charset=”utf-8″ />

</head>

<body style=”font-family: tahoma; font-size:14px;”>

<?php

include (“config.php”);

$pid = $_GET[‘id’];

//select post that its id = pid

$get_query = mysql_query(“SELECT * FROM `posts` WHERE `id` = ‘$pid’ “);

$fetch_result = mysql_fetch_array($get_query);

$postTitle = $fetch_result[‘title’];

$postText = $fetch_result[‘text’];

?>

<center>

<form action=”editpost2.php” method=”post”>

عنوان مطلب : <input type=”text” name=”postTitle” size=”40″ value=”<?php echo $postTitle;?>”><br>

متن مطلب: <br>

<textarea name=”postText” rows=”10″ cols=”50″>

<?php echo $postText;?>

</textarea>

<br>

<input type=”hidden” name=”postID” value=”<?php echo $pid;?>”>

<input type=”submit” value=”ثبت مطلب”>

</form>

</center>

</body>

</html>

همان‌طور که مشاهده می‌کنید باز هم ابتدا فایل config.php را فراخوانی می‌کنیم و دلیل آن را هم مطمئنا می‌دانید. سپس همانند کاری که در فایل single.php انجام دادیم، ابتدا از طریق دستور GET_$ شناسه پستی که قصد ویرایش آن را داریم دریافت کرده و با استفاده از یک کوئری شرطی، تمامی مشخصات مطلبی که شناسه آن را دریافت کرده‌ایم را از بانک اطلاعاتی بیرون می‌کشیم و عنوان و متن مطلب را در دو متغیر قرار می‌دهیم. سپس فرمی مانند فرمی که در فایل insert.php ایجاد کرده بودیم را ایجاد کرده ولی این بار بخش action را برابر editpost2.php قرار می‌دهیم زیرا قصد داریم محتویات این فرم به فایل editpost2.php ارسال شود.  

سپس در فرم خود برای فیلد عنوان یک خاصیت جدید به نام Value را تعریف کرده‌ایم تا مقدار عنوان دریافت شده از بانک اطلاعاتی را در آن قرار دهیم.

نکته‌ای که اینجا باید بدانید این است که می‌توان در کنار کدهای اچ‌تی‌ام‌ال به تعداد نامحدود کد پی‌اچ‌پی بکار ببریم ولی باید دقت کنید که هر بار تگ پی‌اچ‌پی را باز کردید باید آن را در جایی که نیاز است ببندید. ما در کد بالا پس از اینکه اطلاعات مطلب موردنظرمان را از بانک اطلاعاتی خود بیرون کشیده‌ایم، تگ پی‌اچ‌پی را بسته‌ایم و سپس فرم خود را ایجاد کرده‌ایم. مقدار مشخصه Value در فیلد عنوان مطلب را با یک کد پی‌اچ‌دی پر کرده‌ایم که به صورت زیر انجام شده است:

<?php echo $postTitle;?>

همان‌طور که می‌دانید این کد، متغیر postTitle را چاپ می‌کنید و هر مقداری که در مشخصه Value فیلدهای متنی قرار داده شود، به صورت پیش‌فرض در آن فیلد قرار داده خواهد شد. سپس در textarea مربوط به متن مطلب نیز به همین صورت و با استفاده از کد:

<?php echo $postText;?>

در این textarea قرار می‌دهیم. فرض کنید روی لینک ویرایش مطلب اول کلیک کرده‌ایم. همچنین قبل از دکمه ثبت فرم، یک فیلد مخفی تعریف کرده‌ایم که به صورت زیر است:

<input type=”hidden” name=”postID” value=”<?php echo $pid;?>”>

این فیلد به کاربر نمایش داده نمی‌شود چراکه نوع آن hidden تعیین شده است. اما سایر خواص این فیلد نیز همانند فیلدهای معمولی است. نام این فیلد postID تعیین شده و مقدار آن نیز برابر با شناسه مطلب است که قصد ویرایش آن را داریم و در بالای صفحه با استفاده از دستور GET_$ آن را در متغیری به نام pid ذخیره کرده بودیم.

حال اگر تمامی مراحل را تا اینجای کار به درستی انجام داده باشید، باید صفحه شما به صورت زیر اجرا شود.

c377b692-c983-41b1-b347-c8bbb442634b

به لینک این صفحه توجه کنید. در ادامه نام فایل id=1 است که نشان از این دارد که ما قصد ویرایش مطلبی که شناسه id آن برابر ۱ است را داریم. البته دقت کنید در نام‌گذاری متغیر URL می‌توانید به جای id از هر متغیر دیگری نیز استفاده کنید ولی در این صورت باید در فایل editpost.php نیز در محلی که با دستور GET_$ می‌خواهیم ای‌دی پست را دریافت کنیم، از نام انتخاب خود استفاده کنید.

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

<!DOCTYPE html>

<html dir=”rtl” lang=”fa-IR”>

<head>

<title>درج مطلب</title>

<meta charset=”utf-8″ />

</head>

<body style=”font-family: tahoma; font-size:14px;”>

<center>

<?php

include (“config.php”);

$newtitle = trim ($_POST[‘postTitle’]);

$newText = trim ($_POST[‘postText’]);

$pid = $_POST[‘postID’];

if($newtitle != “” && $newText != “”){

//do insert

$query_res = mysql_query(“UPDATE `posts` SET `title` = ‘$newtitle’, `text` = ‘$newText’ WHERE `id` = ‘$pid'”);

if($query_res){

echo “مطلب با موفقیت ویرایش شد.”;

}else{

echo “مشکلی در ویرایش مطلب رخ داده است. مجددا تلاش کنید”;

}

}else{

echo ‘<a href=edit.php>لیست مطالب</a>’;

}

?>

</center>

</body>

</html>

در این فایل نیز پس از فراخوانی config.php، مقادیری که از فرم editpost.php ارسال شده را با روشی که پیش از این در جلسات قبلی آموخته‌اید در متغیرهایی به نام newTitle ،newText و pid ذخیره کرده‌ایم. سپس با یک دستور شرطی if بررسی می‌کنیم که کاربر مقادیر فیلدهای عنوان و متن مطلب را حتما وارد کرده باشد. اگر فیلد عنوان و متن مطلب خالی نباشد شرط برقرار بوده و عملیات ویرایش انجام خواهد شد.

برای ویرایش مطالب باید از کوئری UPDATE استفاده کنیم. همان‌طور که در کد بالا مشاهده می‌کنید، کد بروزسانی اطلاعات در جدول post به صورت زیر است:

$query_res = mysql_query(“UPDATE `posts` SET `title` = ‘$newtitle’, `text` = ‘$newText’ WHERE `id` = ‘$pid'”);

ابتدا دستور UPDATE را نوشته و سپس نام جدولی که قصد ویرایش رکوردهای آن را داریم می‌نویسیم. نام جدول ما در اینجا posts است و سپس کلمه کلیدی SET را اضافه می‌کنیم. حالا به تعداد فیلدهایی که قصد ویرایش آن‌ها را داریم ابتدا نام فیلد رکورد موردنظر را نوشته و سپس مقدار جدید را برابر = قرار می‌دهیم. در اینجا `title` = ‘$newtitle’ است که یعنی مقدار فیلد title برابر با مقدار جدیدی که در متغیر newTitle ذخیره کرده بودیم می‌شود. به همین صورت فیلدهای دیگر را نیز در این کوئری می‌نویسیم. 

در آخر باید یک شرط نیز برای کوئری خود تعیین کنیم و به MYSQL بگوییم که فقط مطلبی را ویرایش کند که شناسه id آن برابر متغیر pid است. اگر این شرط را ننویسید، تمامی رکوردها یعنی تمامی مطالب ذخیره شده در بانک اطلاعاتی ما و در جدول posts با مقادیر جدید جایگزین خواهند شد و قطعا ما نمی‌خواهیم این اتفاق رخ دهد. پس دلیل استفاده از شرطی که در انتهای این کوئری به‌کار برده‌ایم را اکنون می‌دانید.

در نهایت همانند آنچه در فایل ثبت مطلب انجام دادیم، با یک شرط بررسی می‌کنیم که آیا کوئری به درستی انجام شده یا خیر. اگر نتیجه کوئری که در متغیر query_res ذخیره شده true باشد پیغام موفقیت‌آمیز بودن ویرایش مطلب نمایش داده می‌شود و اگر false باشد، پیغامی مبنی بر عدم موفقیت ویرایش مطلب به کاربر نشان داده خواهد شد.

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

۷۱b55c63-2368-41f4-b995-0349553f22eaاگر با پیغام خطا مواجه شدید مراحل را به دقت بررسی کنید تا ایراد کار خود را یافته و آن را اصلاح کنید. خب، تا به اینجای کار سه عملیات اصلی و مهم را در کار با بانک‌های اطلاعاتی MySQL با استفاده از PHP فرا گرفته‌اید. مشاهده اطلاعات، درج اطلاعات و ویرایش اطلاعات ذخیره شده قبلی.

به عنوان تمرین این جلسه سعی کنید همانند آنچه در جلسه قبل گفته شد، فیلدهای بیشتری برای مطلب خود ایجاد کرده و در بخش ویرایش تمامی آن‌ها را بکار ببرید. مثلا فیلدی برای نام نویسنده و فیلد دیگری برای خلاصه مطلب و …. برای اضافه کردن فیلد جدید دقیقا همان‌طور که در آموزش‌های جلسات قبل توضیح دادیم عمل کنید و فقط برای فیلدهای جدید خود نام‌های جدیدی در نظر گرفته و در بخش‌های مختلف نظیر نمایش اطلاعات، و ویرایش و اضافه کردن اطلاعات، بخش‌های لازم برای نمایش و ویرایش آن‌ فیلدها را نیز ایجاد کنید.

در جلسه بعدی روش حذف اطلاعات دلخواه از بانک داده مای‌اس‌کیو‌ال را فرا خواهید گرفت.
منبع: زومیت

آموزش PHP – جلسه نهم: متغیرهای پیش فرض و فرم ها

در این بخش از سری آموزش برنامه‌نویسی وب با PHP می‌خواهیم درباره‌ی مبحث جذاب فرم‌ها صحبت کنیم. علاوه بر این با متغیرهای کاربردی و پیش‌فرض پی‌اچ‌پی نیز آشنا خواهیم شد. در ادامه با ما همراه باشید.

متغیرهای پیش‌فرض

در جلسات قبل اعلام کردیم، در نام‌گذاری متغیرها در php نباید از نام‌های از پیش رزرو شده این زبان برنامه‌نویسی استفاده کنید. PHP شامل یکسری از متغیرهای از پیش تعریف شده است که مقادیر مشخصی را نگه‌داری می‌کنند و به برنامه‌نویس امکانات خوب و کاربردی‌ را ارائه می‌دهند. می‌توانید به‌راحتی و تنها با دانستن نام این متغیرها در هرجای کدهای پروژه خود از آن‌ها استفاده کنید.

متغیر SERVER_$

این متغیر در واقع یک آرایه از داده‌ها است که در آن اطلاعاتی از قبیل هدرها (Headers)، مسیرها (Paths) و … وجود دارد. همان‌طور که در بخش آموزش آرایه‌ها توضیح دادیم برای دسترسی به هر عضو یک آرایه باید نام آن عضو را در مقابل نام آرایه به‌کار ببرید. در مورد آرایه SERVER_$ باید از کدی شبیه به کد زیر استفاده کنید:

<?php
echo $_SERVER[‘SCRIPT_NAME’];
?>

کد بالا را در یک فایل به نام phpvars.php نوشته و در پوشه‌ای به نام new در پوشه htdocs سرور زمپ خود ذخیره کنید. بدین صورت فرضا اگر Xampp را در درایو C خود نصب کرده باشید، مسیر فایل باید به صورت زیر باشد:

C:/Xampp/htdocs/new/phpvars.php

سپس سرور را اجرا کنید. حالا باید این فایل از طریق آدرس http://127.0.0.1/new/phpvars.php در دسترس باشد. کد بالا باعث می‌شود مسیر جاری فایل در مرورگر نمایش یابد. برای ما نتیجه اجرای کد بالا به صورت زیر بود:

d34c52a0-453d-4b2f-9fb3-9290a5241836همان‌طور که می‌بینید مسیر فایل فراخوانی شده در سرور نمایش یافته است. حال بیایید ببینیم این متغیر چه اطلاعات دیگری را می‌تواند نشان دهد. به کد زیر دقت کنید:

<?php
echo $_SERVER[‘HTTP_HOST’];
?>

کد بالا هدر هاست کنونی را برمی‌گرداند. از آنجا که ما این کد را در سرور محلی اجرا کرده‌ایم نتیجه آن به صورت زیر خواهد بود:

ec1ab67a-64c8-4b4f-923e-49f64d394169شاید بپرسید این موارد به چه کار می‌آیند؟ یک مثال خوب می‌زنم. فرض کنید تصاویر زیادی روی سرور شما وجود دارند. حالا به هر دلیلی تصمیم می‌گیرید مسیر تصاویر را در سرور تغییر دهید یا به صورت کلی دامین خود را می‌خواهید تغییر دهید. در این صورت باید هرجا که از این تصاویر استفاده کرده‌اید، مسیردهی را برای تک تک فایل‌ها تغییر دهید که این عملیات طبیعتا بسیار وقت‌ گیر و کم‌بازده است. در عوض می‌توانید تنها با چند کد ساده مسیر تمامی عکس‌های سرور خود را به مسیر جدید تغییر دهید. به مثال زیر توجه کنید. برای این کار کافی است یک فایل با نام دلخواه مثلا config.php ایجاد کنید و کد زیر را در آن قرار دهید.

<?php

$host = $_SERVER[‘HTTP_HOST’];
$image_path = $host . ‘/images/’;

?>

دقت کنید که به عنوان مثال تصاویر را به پوشه‌ای به نام images منتقل کرده‌ایم. ابتدا هدر هاست را همان‌طور که در بالا اشاره کردیم در متغیر جدیدی به نام host قرار داده‌ایم. سپس مسیر جدیدی را با ترکیب متغیر host و مسیر دلخواه جدید که در اینجا پوشه images است، در متغیر دیگری به نام image_path قرار داده‌ایم. به عنوان مثال در سرور محلی آنچه در متغیر image_path ذخیره می‌شود چیزی شبیه به مسیر زیر خواهد بود:

۱۲۷٫۰٫۰٫۱/images/

نکته مهم: اگر دقت کرده باشید بین متغیر host$ و مسیر ‘/images/’ از یک نقطه استفاده کرده‌ایم. در پی‌اچ‌پی برای اتصال رشته‌های متنی به یکدیگر و نیز اتصال متغیرها به یکدیگر و همچنین اتصال متغیر‌ها به رشته‌های متنی می‌توانید از نقطه استفاده کنید.

حالا در فایل‌های پروژه خود هر کجا که از عکس‌های جدید خود بخواهیم استفاده کنیم کافی است ابتدا فایل Config.php که در بالا ایجاد کردیم را به صفحه include یا require اضافه کنیم و سپس از متغیر image_path در هرجا که خواستیم استفاده کنیم. به مثال زیر توجه کنید:

<?php

require (“config.php”);
echo ‘<img src=’ . $image_path . ‘header.jpg>’;

?>

در کد بالا در تگ img که در html به منظور نمایش تصاویر از آن استفاده می‌کنیم، به جای آدرس ثابت عکس از آدرس جدیدی که ایجاد کرده‌ایم، بهره بردیم. به نوع استفاده از کاراکتر نقطه در کد بالا نیز توجه کنید چراکه در پی‌اچ‌پی بارها و بارها شرایطی پیش خواهد آمد که نیاز به ترکیب رشته‌ها خواهید داشت. همچنین اگر فکر می‌کنید این کد کمی برایتان گیج‌کننده است پیشنهاد می‌کنیم ابتدا دستورات HTML را ب‏ه‌خوبی فرا گرفته و سپس شروع به یادگیری php کنید زیرا همان‌طور که در جلسه اول گفتیم، پیش‌نیاز این آموزش‌ها آشنایی شما با دستورات HTML و تا حدودی دستورات CSS است. در جدول زیر لیست سایر اعضای آرایه SERVER_$ که می‌توانید از آن‌ها استفاده کنید را برایتان لیست کرده‌ایم:

جدول اعضای آرایه SERVER_$ در PHP

نام فایل کنونی که در سرور اجرا شده را بر می‌گرداند $_SERVER[‘PHP_SELF’]
آدرس آی‌پی سرور کنونی را بر می‌گرداند $_SERVER[‘SERVER_ADDR’]
نام سرور کنونی را بر می‌گرداند $_SERVER[‘SERVER_NAME’]
هدر هاست کنونی را بر می‌گرداند $_SERVER[‘HTTP_HOST’]
آی‌پی سروری قبلی‌ای که کاربر از آن به سایت ما وارد شده را بر می‌گرداند $_SERVER[‘REMOTE_ADDR’]
پورت دستگاهی که کاربر از طریق آن با سرور ارتباط برقرار کرده را بر می‌گرداند $_SERVER[‘REMOTE_PORT’]
نام مسیر دقیق فایلی که فراخوانی شده را بر می‌گرداند $_SERVER[‘SCRIPT_FILENAME’]
پورتی که سرور از آن برای ارتباطات خود استفاده می‌کند را برمی‌گرداند $_SERVER[‘SERVER_PORT’]
نام دقیق فایلی که فراخوانی شده را بر می‌گرداند $_SERVER[‘SCRIPT_NAME’]
آدرس URI $_SERVER[‘REQUEST_URI’]

می‌توانید تک تک موارد بالا را خودتان برای تمرین تست کنید و نتیجه را در مرورگر مشاهده کنید. مطمئن باشید که این داده‌ها بارها و بارها به‌کارتان خواهد آمد، پس سعی کنید آنقدر آن‌ها را تمرین کنید که همیشه در ذهن‌تان باقی بمانند.

فرم‌ها در PHP

در پی‌اچ‌پی از دو متغیر POST_$ و GET_$ به منظور جمع‌آوری اطلاعات ثبت‌شده در فرم‌ها استفاده می‌کنیم. فرم‌ها در طراحی صفحات وب بخش غیرقابل انکاری هستند و به منظور تعامل کاربر و انجام اکثر کارهایی که به نوعی با اطلاعات سروکار دارند باید از فرم‌ها استفاده کنیم. فرم‌ ثبت‌نام، فرم ورود به محوطه کاربری، فرم بازیابی رمزعبور و … از جمله مهم‌ترین کاربردهای فرم‌ها در تولید وب‌سایت‌ها هستند.

با استفاده از تگ FORM در اچ‌تی‌ام‌ال می‌توانیم فرم موردنظر خود را ایجاد کنیم. تمامی فیلدهای ورودی باید در داخل این تگ به‌کار گرفته شوند. به مثال زیر توجه کنید:

<FORM action=”send.php” method=”post”>

name : <input type=”text” name=”username”>

<input type=”submit” name=”send” value=”Submit Your Name!”>

</form>

در کد بالا همان‌طور که می‌بینید یک فرم ایجاد کرده‌ایم که شامل یک فیلد ورودی برای وارد کردن نام است. این فیلد از نوع متنی بوده و خاصیت name آن را username تعیین کرده‌ایم. همچنین از یک دکمه از نوع Submit برای ثبت فرم استفاده کرده‌ایم و خاصیت نام این دکمه را send و متن روی دکمه را با خاصیت value برابر Submit Your Name! قرار داده‌ایم.

مهم‌ترین نکته کد بالا دو خاصیت action و method در تگ FORM است. در قسمت action ما عبارت send.php را نوشته‌ایم. این یعنی اطلاعات فرم ما پس از ثبت، به صفحه‌ای که در بخش action تعیین کرده‌ایم ارسال خواهد شد. همچنین در بخش method می‌توان از دو حالت get و post استفاده کرد. تفاوت این دو روش را نیز به شما توضیح خواهیم داد اما در کل نتیجه کار در هر دو حالت یکی خواهد بود.

کد بالا را در یک فایل به نام form.php قرار دهید و سپس این فایل را در همان پوشه new که در ابتدای آموزش ایجاد کرده بودید قرار دهید. حالا یک فایل دیگر به نام send.php ایجاد کنید و کد زیر را در آن قرار دهید:

<?php
$user = $_POST[‘username’];
echo “your name is : ” . $user;
?>

از آنجا که در بخش method فرم خود از روش post استفاده کرده‌ایم در اینجا برای دریافت اطلاعات فرم خود، از متغیر POST_$ استفاده کرده‌ایم. سپس در مقابل نام این متغیر (در واقع آرایه) به عضو مورد نظرمان که در اینجا name تعیین شده برای فیلد نام در فرم بالا است، را وارد کرده‌ایم. سپس نتیجه را در متغیر user ذخیره کرده و نهایتا آن را با دستور echo نمایش داده‌ایم. پس مثال بالا شامل دو فایل شد. یکی فایل form.php که فقط کدهای html را در آن به‌کار بردیم و دیگری فایل send.php که اطلاعات فرم ما به این صفحه ارسال می‌شود. سپس با دستورات پی‌اچ‌پی، اطلاعات وارد شده در فیلد username را از فرم گرفته و آن را چاپ کردیم.

اگر در هنگام تست کدهای بالا به آدرس URL در مرورگر توجه کنید ابتدا از آدرس http://127.0.0.1/new/form.php به فرم دسترسی یافته‌ و پس از ثبت فرم آدرس صفحه به http://127.0.0.1/new/send.php تغییر خواهد کرد. از آنجا که ما در ثبت فرم از متد post استفاده کرده‌ایم، اطلاعات به صورت امن و بدون این‌که به کاربر نمایش داده شوند به صفحه جدید که در اینجا send.php است ارسال شده است. اما تفاوت این روش با get چیست؟ در کد form.php در بخش method این‌بار به جای post از get استفاده کنید و فایل را ذخیره کنید. کد form.php شما در این حالت باید مثل زیر باشد:

<FORM action=”send.php” method=”get”>
name : <input type=”text” name=”username”>
<input type=”submit” name=”send” value=”Send Your Name!”>
</form>

حالا فایل send.php را نیز به صورت زیر تغییر دهید:

<?php
$user = $_GET[‘username’];
echo “your name is : ” . $user;
?>

می‌بینید که این‌بار به جای POST_$ از GET_$ استفاده کرده‌ایم و بقیه مراحل مشابه با روش قبل است. اما یک تفاوت بسیار مهم در این روش نسبت به روش post وجود دارد. اگر فرم را در این حالت ثبت کنید و به آدرس URL در مرورگر توجه کنید باید چیزی شبیه به عکس زیر را ببینید. من در صفحه form.php در فیلد نام عبارت mojtaba را نوشته و فرم را ثبت کردم. 

۵۸۴۲۲b2d-5982-4a82-83b5-81c895506efe

همان‌طور که در تصویر بالا هم می‌بینید این‌بار نام فیلد ثبت‌شده و نیز مقدار وارد شده در آن در آدرس مرورگر نمایان شده است. حال اگر کمی خلاقیت به خرج دهید کافی است به جای mojtaba در آدرس URL بالا، هر مقدار دیگری را که دوست دارید وارد کنید. نتیجه چه خواهد شد؟ نام جدید در مرورگر چاپ خواهد شد بدون این‌که نیاز باشد آن را از طریق فرم ثبت کنید! حالا اگر تعداد فیلدهای ما بیشتر باشد چه کاری باید انجام داد؟ فرض کنید در فرم خود ۳ فیلد با نام‌های user و age و city داریم. اگر این فرم را با متد GET ارسال کنیم آدرس URL صفحه‌ای که فرم به آنجا ارسال می‌شود به صورت زیر خواهد بود. فرض کنید نام صفحه مقصد mypage.php است:

mypage.php?user=mojtaba&age=25&city=tehran

می‌بینید که نام فیلد اول یعنی user پس از علامت سوال ? قرار گرفته و بعد = و سپس مقدار وارد شده در این فیلد. برای فیلدهای دوم به بعد نام هر فیلد پس از علامت & قرار می‌گیرد و مجددا = و سپس مقدار فیلد. به هر تعدادی که فیلد داشته باشیم از فیلد دوم به بعد به همین صورت در آدرس URL اضافه خواهند شد.

برای درک بهتر این بخش یک مثال دیگر می‌زنیم. یک فایل جدید به نام my.php در پوشه new ایجاد کنید و کد زیر را در آن قرار دهید:

<?php
$name = $_GET[‘name’];
$age = $_GET[‘age’];
$city = $_GET[‘city’];

echo “your name is $name and yor age is $age and your city is $city”;
?>

حالا آدرس زیر را در مرورگر خود اجرا کنید:

http://127.0.0.1/new/my.php?name=mojtaba&age=25&city=tehran

اگر کد بالا را اجرا کنید می‌بینید که ما مقادیر را به صورت مستقیم و بدون نیاز به فرم از طریق آدرس به صفحه موردنظر خود ارسال کرده‌ایم. نتیجه اجرای کد بالا در مرورگر به صورت زیر خواهد بود:

your name is mojtaba and yor age is 25 and your city is tehran

شما می‌توانید به جای مقادیر این سه متغیر در آدرس URL از مقادیر دلخواه خود استفاده کنید تا مبحث get را بهتر درک کنید.

برای تمرین سعی کنید یک فرم جدید ایجاد کنید که به جای یک فیلد دارای چند فیلد باشد و سپس با استفاده از دو متد post و get داده‌های ثبت شده توسط فرم را با پی‌اچ‌پی دریافت کرده و آنها را نمایش دهید. با استفاده از آنچه تا به این لحظه یادگرفته‌اید می‌توانید یک ماشین حساب ساده بسازید. ابتدا دو عدد را با فرم از کاربر دریافت کنید و سپس با پی‌اچ‌پی عملیات ریاضی موردنظر را انجام دهید. این کار بسیار ساده است و باعث می‌شود مبحث این جلسه را نیز به‌خوبی یاد بگیرید.

در جلسه بعدی رفته رفته وارد مباحث پیشرفته‌تر خواهیم شد. همچنین در صورتی که سوالی در مورد این جلسه دارید آن را از طریق بخش نظرات اعلام کنید.

منبع: زومیت

آموزش PHP – جلسه ششم: حلقه‌ های While و For

در ادامه سری آموزش‌های php می‌خواهیم به مبحث حلقه‌ها بپردازیم. از حلقه‌ها به منظور تکرار اجرای کدها به تعداد دفعات دلخواه می‌توانیم استفاده کنیم. در ادامه آموزش با ما همراه باشید.

گاهی در برنامه‌نویسی‌ شرایطی پیش می‌آید که نیاز داریم بخش خاصی از کد چندین مرتبه اجرا شود. در این حالت می‌توانیم از حلقه‌ها بهره ببریم. همانند سایر زبان‌های‌ برنامه‌نویسی در php هم از چند نوع حلقه پشتیبانی می‌‌شود. حلقه while و for از جمله مهمترین آن‌ها هستند.

حلقه while

با استفاده از این حلقه می‌توان کد مورد نظر را تا زمانی که شرط برقرار باشد اجرا کرد. به مثال زیر که ساده‌ترین حالت استفاده از حلقه while است توجه کنید.

<?php
while ($var < 10)
{
echo “var is now < 10”;
}
?>

همان‌طور که در کد بالا مشاهده می‌کنید، تا زمانی‌که شرط داخل پرانتز برقرار باشد، کدی که در داخل حلقه نوشته شده، اجرا خواهد شد. پس مشخصا اگر شرط حلقه هیچ‌گاه false نشود، حلقه ما تا بی‌نهایت بار ادامه خواهد یافت.

کار را با یک مثال دیگر ادامه می‌دهیم.در مثال زیر ابتدا متغیر i را برابر با عدد ۱ قرار داده و در شرط حلقه، اعلام می‌کنیم تا زمانی‌که مقدار i از عدد ۷ کوچک‌تر است، کد داخل حلقه اجرا شود. در کد حلقه ابتدا مقدار کنونی i را چاپ کرده و سپس با استفاده از عملگر افزایشی که در جلسات پیش با آن آشنا شدید، در هربار اجرای حلقه یک واحد به مقدار کنونی متغیر i اضافه می‌کنیم. بدین صورت کد حلقه تا زمانی‌که مقدار i کوچک‌تر از عدد ۷ باشد، اجرا خواهد شد و‌ نتیجه مثال زیر چاپ اعداد ۱ تا ۶ خواهد بود.

<?php
$i = 1;
while ($i < 7)
{
echo “$i <br>”;
$i++;
}
?>

اما فرض کنید شرط حلقه به نحوی باشد که از همان ابتدا مقدار False را برگرداند. در این حالت کد داخل حلقه هیچ‌گاه اجرا نمی‌شود. اما در پی‌اچ‌پی راهی تعبیه شده تا در صورت نیاز کد موردنظر ما در حلقه حتی اگر شرط هم برقرار نباشد، حداقل یک بار اجرا شود. در این شرایط باید از دستور Do…While استفاده کنیم.

حلقه Do…While

همان‌طور که گفتیم در صورتی که می‌خواهید کد موردنظر شما حتی در حالت برقرار نبودن شرط حلقه یک‌بار اجرا شود، باید از Do … While استفاده کنید. روش کلی استفاده از این نوع حلقه در مثال زیر آورده شده است:

<?php
$i = 8;
do{
echo “meqdare i aknun $i ast”;
$i++;
}while ($i < 7);
?>

در کد بالا ابتدا مقدار متغیر i را برابر ۸ تعیین می‌کنیم. سپس با دستور Do… while ابتدا یک دستور چاپ echo را وارد کرده‌ایم که مقدار کنونی i را نمایش دهد. (دقت کنید برای این‌که قصد دارید مقدار متغییر در دستور echo چاپ شود از دابل کوتیشن استفاده کرده‌ایم.) سپس با عملگر افزایش ++ یک واحد به مقدار کنونی i اضافه کرده‌ایم. تا زمانی‌که شرط داخل While برقرار باشد کد ما نیز اجرا خواهد شد. اما از آنجا که در شرط حلقه فوق برقرار نیست، فقط یک بار شاهد اجرای دستور نوشته شده در این حلقه خواهیم بود.

پس با اضافه کردن Do به حلقه While مشاهده کردید که چگونه می‌توان کد موردنظر را حداقل یک‌بار در صورتی که شرط هم برقرار نباشد اجرا کنیم. ذکر این نکته هم ضروری به نظر می‌رسد که اگر شرط برقرار باشد باز هم کد قرار گرفته در بخش do اجرا خواهد شد.

برای درک بهتر به مثال دیگری در این مورد توجه کنید. در کد زیر ابتدا مقدار متغیر i را برابر ۵ تعیین می‌کنیم و سپس با استفاده از حلقه do…while اعلام می‌کنیم تا هنگامی که شرط ما یعنی کوچک‌تر یا مساوی بودن i با عدد ۷ برقرار است، کد حلقه که این‌بار در بخش do نوشته شده، اجرا شود.

<?php
$i = 5;
do {
echo “number is now $i <br>”;
$i++;
}while($i <= 7);
?>

در کد حلقه باز هم ابتدا مقدار کنونی i را چاپ کرده و سپس به ازای هر بار اجرا حلقه یک واحد به آن اضافه می‌کنیم. پس خروجی کد بالا در مرورگر به صورت زیر خواهد بود:

۵
۶
۷

اما در پی‌اچ‌پی برای استفاده از حلقه‌ها باز هم محدود به این دو روش نیستید. روش بعدی استفاده از حلقه For است.

حلقهFor

اگر به مثال‌هایی که در بخش توضیحات حلقه While آوردیم دقت کرده باشید، متوجه شده‌اید که در هر مثال از یک متغیر به نوعی به عنوان یک شمارشگر بهره برده‌ایم تا در هر بار اجرای حلقه بتوانیم تعداد دفعات تکرار اجرا شدن آن را کنترل کنیم. در حلقه For بر خلاف While شما حتما باید در دستور اصلی این حلقه یک شمارنده تعریف کنید. برای اینکه بهتر موضوع را درک کنید به کد زیر توجه کنید که ساده‌ترین حالت استفاده از حلقه For در پی‌اچ‌پی است:

<?php
//using for in php in simplest mode!
for (init; test; incremnet){
code to run
}
?>

در کد بالا منظور از init در واقع تعریف و مقداردهی یک شمارشگر است. test شرط حلقه خواهد بود و تا زمانی‌که این شرط برقرار باشد (یعنی true را برگرداند) حلقه اجرا خواهد شد و در نهایت incremnet مقدار اضافه شدن یا کاسته شدن شمارشگر حلقه در هربار اجرای حلقه است (دقیقا همان کار عملگر افزایش و کاهشی که در while استفاده کردیم را می‌کند). همچنین به این نکته توجه کنید که بین هر کدام از این موارد باید علامت نقطه‌ویرگول (;) را تایپ کنید. برای درک بهتر این‌بار به مثال عملی زیر توجه کنید:

<?php
for ($i = 1; $i < 7; $i++)
{
echo “$i <br>”;
}
?>

در کد بالا ابتدا شمارنده حلقه را با متغیری به نام i تعریف کرده و مقدار پیش‌فرض آن را عدد ۱ تعیین کردیم. سپس شرط حلقه را نوشته‌ایم که به پی‌اچ‌پی می‌گوید تا زمانی‌که مقدار i کوچکتر از عدد ۷ است حلقه را اجرا کند. در آخر مقدار متغیر شمارنده را به نحوی تعیین کرده‌ایم که بعد از هربار اجرای حلقه یک واحد افزایش داده شود. کد داخل حلقه نیز مقدار کنونی متغیر i را چاپ خواهد کرد. در نتیجه خروجی کد بالا در مرورگر به صورت زیر خواهد بود:

۱
۲
۳
۴
۵
۶

استفاده از حلقه For نسبت به while باعث می‌شود کدنویسی شما کمتر شود و از نظر بسیاری از توسعه‌دهندگان این حلقه به نوعی حرفه‌ای‌تر است. ولی نتیجه کار همان‌طور که متوجه شده‌اید در هر صورت یکی خواهد بود.

حلقه‌ها بسیار ساده هستند ولی در عین حال قدرت زیادی دارند. با کمی خلاقیت می‌توان استفاده‌های بسیار خوبی از این دستورات ببریم. به عنوان مثال ما با استفاده از کد ساخت جدول در HTML و حلقه‌های پی‌اچ‌پی که در این جلسه به صورت کامل با آن‌ها آشنا شدید، یک جدول ضرب بسیار ساده را تولید کرده‌ایم:

<table align=”center”>
<?php
for($i=1; $i<=10; $i++){
for($j=1; $j<=10; $j++){
echo “$i*$j”;
echo ” – “;
}
echo “</br>”;
echo “</br>”;
}
?>
</table>

تنها نکته‌ای که در مثال بالا وجود دارد، این است که همانند دستورات تو در توی if در اینجا نیز از حلقه for به صورت تو در تو استفاده کرده‌ایم. شما می‌توانید همانند IFهای تودرتو بی نهایت حلقه While یا For را هم به همان شکل مورد استفاده قرار دهید. خروجی کد بالا در مرورگر کاربر به صورت زیر خواهد بود:

۱*۱ – ۱*۲ – ۱*۳ – ۱*۴ – ۱*۵ – ۱*۶ – ۱*۷ – ۱*۸ – ۱*۹ – ۱*۱۰ –

۲*۱ – ۲*۲ – ۲*۳ – ۲*۴ – ۲*۵ – ۲*۶ – ۲*۷ – ۲*۸ – ۲*۹ – ۲*۱۰ –

۳*۱ – ۳*۲ – ۳*۳ – ۳*۴ – ۳*۵ – ۳*۶ – ۳*۷ – ۳*۸ – ۳*۹ – ۳*۱۰ –

۴*۱ – ۴*۲ – ۴*۳ – ۴*۴ – ۴*۵ – ۴*۶ – ۴*۷ – ۴*۸ – ۴*۹ – ۴*۱۰ –

۵*۱ – ۵*۲ – ۵*۳ – ۵*۴ – ۵*۵ – ۵*۶ – ۵*۷ – ۵*۸ – ۵*۹ – ۵*۱۰ –

۶*۱ – ۶*۲ – ۶*۳ – ۶*۴ – ۶*۵ – ۶*۶ – ۶*۷ – ۶*۸ – ۶*۹ – ۶*۱۰ –

۷*۱ – ۷*۲ – ۷*۳ – ۷*۴ – ۷*۵ – ۷*۶ – ۷*۷ – ۷*۸ – ۷*۹ – ۷*۱۰ –

۸*۱ – ۸*۲ – ۸*۳ – ۸*۴ – ۸*۵ – ۸*۶ – ۸*۷ – ۸*۸ – ۸*۹ – ۸*۱۰ –

۹*۱ – ۹*۲ – ۹*۳ – ۹*۴ – ۹*۵ – ۹*۶ – ۹*۷ – ۹*۸ – ۹*۹ – ۹*۱۰ –

۱۰*۱ – ۱۰*۲ – ۱۰*۳ – ۱۰*۴ – ۱۰*۵ – ۱۰*۶ – ۱۰*۷ – ۱۰*۸ – ۱۰*۹ – ۱۰*۱۰ –

با کمی خلاقیت بیشتر و اضافه کردن رنگ و حاشیه به کد HTML مربوط به ساخت جدول، می‌توانید یک جدول ضرب کاربری و زیبا را تنها با چند خط کدنویسی در php تولید کنید.

نکته دیگر این‌که حلقه‌ دیگری به نام For Each در پی‌اچ‌پی وجود دارد که کاربرد آن کمی پیشرفته‌تر از دو حلقه مورد بحث است و به دلیل این‌که قصد ما آموزش آسان و روان پی‌اچ‌پی است، ترجیح می‌دهیم در ساخت پروژه‌های عملی چنین بخش‌هایی را به شما آموزش دهیم.

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

یک خبر خوب هم به شما می‌دهیم که با مطالعه این شش جلسه، مقدمات و پایه و اساس لازم برای نوشتن پروژه‌ها و مثال‌های کاربردی ساده را یاد گرفته‌اید و از جلسه بعد سعی می‌کنیم آمورش‌ها را با ایجاد پروژه‌های کاربردی به پیش‌ ببریم و در طی این آموزش‌ها سایر مباحث را نیز فرا بگیریم. پس همچنان پیگیر این سری آموزشی در وبلاگ ما باشید.

منبع: زومیت

آموزش PHP – جلسه سوم: عملگرها

در ادامه سری آموزش‌های پی‌اچ‌پی در زومیت و پس از معرفی ابزارهای موردنیاز و شروع کار با این زبان برنامه‌نویسی، و پس از مبحث متغیرها و کامنت‌ها، حال به سراغ جلسه سوم می‌رویم. در این جلسه قصد داریم در مورد عملگرها در PHP صحبت کنیم پس در ادامه آموزش با ما همراه باشید.

عملگرهای اصلی

ابتدا باید ببینیم عملگر چیست؟ عملگرها در واقع عملیاتی را بر روی داده‌ها انجام می‌دهند و از آنجا یک خروجی می‌گیریم. برای مثال در خط زیر عملگر جمع به‌کار رفته است و باعث شده تا دو عدد با یکدیگر جمع شوند:

۲ + ۲ = ۴

همان‌طور که دیدید عملگرهای اصلی در واقع همان عملیات‌ اصلی در ریاضیات هستند که در دوران ابتدایی با آن‌ها آشنا شدیم! عملگرهای اصلی در پی‌اچ‌پی از این قرار هستند:‌

عملگر جمع (+)، عملگر تفریق (-)، عملگر ضرب (*)، عملگر باقی‌مانده (٪) و عملگر تقسیم (/).

بهترین راه برای ثبت آموخته‌ها استفاده از مثال عملی است پس در ادامه برای این عملگرها به زبان پی‌اچ‌پی مثالی می‌آوریم. دقت کنید توضیحات هر خط از کد زیر به صورت کامنت مشخص شده است:

همان‌طور که دیدید ۴ عملگر اصلی به همین راحتی در پی‌اچ‌پی مورداستفاده قرار می‌گیرند. اما اگر حواس‌تان باشد، یک عملگر اصلی دیگر به نام باقی‌مانده هم در php وجود دارد. پیش از مثال لازم دانستیم در مورد این عملگر کمی بیشتر توضیح دهیم. از باقی‌مانده به منظور گرفتن خروجی باقی‌مانده تقسیم داده‌ها بر یکدیگر استفاده می‌شود. برای مثال در کد زیر، باقی‌مانده تقسیم دو عدد ۸ و ۳ به عنوان خروجی چاپ خواهد شد که این مقدار ۲ است.

<?php

//module

$num1 = 8;

$num2 = 3;

echo $num1 % $num2; //this will print 2

?>

عملگرهای افزایش و کاهشی

دو نوع عملگر دیگر نیز در PHP وجود دارند که از آن‌ها برای افزایش یا کاهش مقدار یک متغیر استفاده می‌شود. به مثال زیر توجه کنید:

<?php
$x++; //this code is same to this: $x = $x + 1;
$x–; //this code is same to this: $x = $x – 1;
?>

همان‌طور که احتمالا متوجه شده‌اید عملگر ++ باعث می‌شود یک واحد به مقدار قبلی متغیر x در کد بالا اضافه شود. در واقع ++x$ همان کار ۱ + x$ را انجام می‌دهد ولی طبیعتا روشی حرفه‌ای‌تر و سریع‌تر است. همین قضیه در مورد عملگر — نیز صدق می‌کند با این تفاوت که این‌بار یک واحد از مقدار متغیر x کم می‌شود.

اما گاهی در برنامه‌نویسی شرایطی پیش‌ می‌آید که نمی‌توان از عملگرهای افزایش و کاهشی به همین شکل استفاده کرد! فرض کنید می‌خواهید مقدار یک متغیر را ابتدا چاپ کنید یا از آن خروجی بگیرید و سپس آن را یک واحد افزایش دهید. در این شرایط کد بالا نمی‌تواند به شما کمک کند چرا که به حالت معمول نوشتن کدی مانند ++x$ باعث می‌شود ابتدا یک واحد به متغیر اضافه و سپس هرچه نتیجه باشد به عنوان خروجی مدنظر قرار می‌گیرد.

اگر می‌خواهید ابتدا به مقدار کنونی متغیر دسترسی یافته و سپس عملیات افزایش یا کاهش را انجام دهید باید از کدی مانند زیر استفاده کنید و عملگرهای مورد بحث را پیش از نام متغیر به‌کار بگیرید:

<?php
$x = 1;
echo ++$x; // first echo current value of $x and then increase 1 unit. so this will print 1;
echo “<br>”;
echo $x; // this will print 2 again! bcz $x now is $x + 1<span id=”CmCaReT”></span>
?>

توضیحات کد بالا به صورت کامنت در خود کد داده شده و از شما می‌خواهیم سعی کنید خودتان به‌خوبی آن را تحلیل کنید. در کد بالا عدد ۲ در خروجی دوبار چاپ خواهد شد. دقت کنید که ما از کد <br> که یک تگ اچ‌تی‌ام‌ال است نیز استفاده کرده‌ایم.

عملگرهای اختصاص دادن

از این نوع عملگر برای اختصاص دادن مقدار به متغیرها استفاده می‌کنیم. پیشتر با عملگر اصلی = آشنا شده‌اید و تاکنون در مثال‌ها از آن استفاده کرده‌ایم. کار این عملگر بسیار ساده است. هر چه در سمت راست وجود دارد به متغیر سمت چپ اختصاص داده خواهد شد. علاوه بر عملگر اصلی اختصاص دادن چند عملگر کاربردی دیگر نیز در پی‌اچ‌پی وجود دارند که کارکرد آن‌ها مشابه عملگرهای افزایش و کاهشی است. به مثال زیر توجه کنید:

<?php
$x = 50;
$x += 100; // this is same as this code : $x = $x + 100
echo $x; // this will print 150
?>

در کد بالا ابتدا مقدار ۵۰ را به متغیر x اختصاص دادیم. سپس با استفاده از عملگر اختصاص دادن =+ مقدار ۱۰۰ را به متغیر یاد شده اضافه و نتیجه را مجددا در خود متغیر ذخیره کردیم. در نهایت با دستور echo مقدار نهایی x$ را در مرورگر نمایش دادیم. عملگرهای اختصاص دادن به شرح زیر هستند:

عملگرهای اختصاص دادن در پیاچپی

عملگر کارکرد توضیح
$x += $y $x = $x + $y افزایشی
$x -= $y $x = $x – $y کاهشی
$x *= $y $x = $x * $y ضرب
$x /= $y $x = $x / $y تقسیم
$x %= $y $x = $x % $y باقی‌مانده

همان‌طور که می‌بینید می‌توان با استفاده از این عملگرها سرعت کدنویسی را بالا برد و علاوه بر این کد کمتری نوشت.

عملگرهای مقایسه‌ای

از این نوع عملگرها برای مقایسه دو داده استفاده می‌شود. این عملگرها خروجی دوحالته دارند بدین معنا که پس از انجام مقایسه یا مقدار صحیح (true) یا مقدار غلط (false) را باز می‌گردانند. در جدول زیر می‌توانید این عملگرها و کاربرد آن‌ها را ببینید:

عملگر نام مثال نتیجه
== برابری $x == $y اگر مقدار x و y برابر باشد true را برمی‌گرداند
=== یکسان $x == $y اگر مقدار x و y برابر و نوع آن‌ها نیز یکی باشد true را برمی‌گرداند
=! عدم برابری $x != $y اگر مقدار x و y برابر نباشد true را برمی‌گرداند
<> عدم برابری $x <> $y اگر مقدار x و y برابر نباشد true را برمی‌گرداند
==! عدم یکسان بودن $x !== $y اگر مقدار x و y برابر نباشد و نوع آن‌ها نیز یکی نباشد true را برمی‌گرداند

همان‌طور که می‌بینید می‌توان از انواع حالت مقایسه‌ای پیشرفته در پی‌اچ‌پی استفاده کرد. البته نیازی نیست که چندان نگران این بخش باشید و در کدها و پروژه‌های عملی که در جلسات آینده انجام می‌دهیم از تمامی این موارد استفاده خواهیم کرد تا علاوه بر یادگیری یک کار عملی هم انجام داده باشید.

اما پیشنهاد می‌کنیم با نوشتن چند خط کد نمونه خودتان را بیازمایید و مثال‌هایی برای استفاده از این عملگرها با توجه به آنچه تا کنون آموخته‌اید را نوشته و در Xampp سرور رایانه شخصی خود تست کنید. 

در صورتی که هرگونه سوالی در مورد مباحث بیان شده دارید می‌توانید در بخش دیدگاه‌ها اعلام کنید. جلسه بعدی آموزش پی‌اچ‌پی به مبحث آرایه‌ها اختصاص دارد.

منبع: زومیت