حذف فایل در PHP

یکی دیگر از عملیات مهم در کار با فایلها، حذف فایل هست. در این درس یاد میگیرید که چطور میشه یک فایل رو تا فراخوانی تابع ()unlink حذف کرد.

شکل کلی

bool unlink ( string $filename [, resource $context ] )

از کد بالا چند چیز رو میتونیم بفهمیم. اول اینکه تابع ()unlink از نوع Bool یا Boolean هست یعنی مقداری که تابع برگشت میده True یا False هست.

دوم اینکه ایت تابع یک پارامتر اجباری filename$ از نوع String یا رشته ای و یک پارامتر اختیاری context$ از نوع resource داره.

نکته: همیشه وقتی تو برنامه نویسی دیدید چیزی تو دو براکت ([ … ]) قرار گرفته معنی اختیاری بودن میده.

ادامه

نوشتن در فایل در PHP

حالا میدونید که چطور باید فایل ها رو باز و بسته کنید. در این درس به پرکاربردترین دستور در بحث فایلها میپردازیم، نوشتن در فایل!

نوشتن در فایل

قبل از اینکه شروع به نوشتن در فایل کنیم باید توسط تابع ()fopen فایل مورد نظرمون رو باز کنیم.  برای نوشتن در فایل ازتابع ()fwrite استفاده میشه ناگفته نمونه که تابع ()fputs هم هست اما با ()fwrite فرقی نداره. هر دو تابع دو پارامتر از ما دریافت میکنن پارامتر اول File handler و پارامتر دوم داده ای که باید در فایل نوشته بشه رو مشخص میکنه.

 

نکته: توابع ()fwrite و ()fputs دارای ویژگی Binary-Safe هستند، یعنی داده های باینری مثل عکس ها و داده های کاراکتری مثل فایلهای متنی رو میشه با این توابع نوشت.

 

ادامه

ایجاد فایل در PHP

قبل از اینکه بخوایم روی فایلی عملیات انجام بدیم باید فایل مورد نظر وجود داشته باشه! تو این درس یاد میگیرید که چطور در زبان PHP میشه فایل ایجاد کرد. برای ایجاد و باز کردن فایل برای انجام عملیات خاص ما از تابع ()fopen استفاده میکنیم.

در php مثل بعضی زبان های دیگه از یک دستور برای ایجاد و باز کردن فایل استفاده میشه پس به این نکته باید توجه داشته باشید.

 

Syntax

<?php 
$fileHandle = fopen(fileName, mode);
//do something
fclose($fileHandle);
?>

 توضیح پارامترها:

filename: آدرس فایلی که میخوایم اون رو ایجاد یا دستکاری کنیم رو در این پارامتر مشخص میکنیم. فایل میتونه در محیط اینترنت یا محیط محلی باشه.

Mode: در این پارامتر مهم باید مشخص کنیم که چه عملی میخوایم روی فایل انجام بدیم مثل خواندن، نوشتن، الحاق و… .

نکته: در صورتی که تابع ()fopen در باز کردن فایل موفق بشه اشاره گر فایل(File handler) رو برمیگردونه و اگر موفق نشه مقدار ۰ یا FALSE رو برگشت میده.
نکته: در درس بعدی با تمام mode ها آشنا میشید. چون mode ها  بیشتر به باز کردن فایل مربوط میشن به همین دلیل اونها رو در درس بعدی توضیح خواهیم داد.

 

ادامه

حلقه های بی نهایت

اشتباهات کوچیک در نوشتن حلقه ها میتونه باعث بی نهایت شدن اون بشه. حلقه های بی نهایت (infinite loops) فشار زیادی روی CPU وارد میکنن و میتونن باعث فریز شدن یا هنگ کردن کامپیوتر، ایجاد Deadlock یا Segfault بشن.

نکته:  منظور ما از حقله های بی نهایت، حلقه های بی نهایتی هستند که در بین تکرارها هیچ توقفی وجود نداره در غیر اینصورت حلقه های بی نهایت بسیار مفید و کاربردی اند.

 

حلقه بی نهایت چطور بوجود میاد؟

به چند مورد که زیاد پیش میاد اشاره میکنیم که باید در کد نویسی دقت داشته باشید.

ادامه

حلقه foreach در PHP

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

 

Form 1- Syntax

foreach (array_expression as $value)
   {
   statement
   }

در این فرم، حلقه به ازای هر ایتم در آرایه اجرا میشه و در هر تکرار مقدار المنت جاری در متغیر value$ قرار میگیره.

 

Form 2- Syntax

foreach (array_expression as $key => $value)
   {
   statement
   }

این فرم ویژگی فرم بالا رو داره به علاوه، کلید هر آیتم آرایه ( در آرایه های اندیسی(Indexed array) عدد و در آرایه های متحد(Associative array) نام ایتم مشخص شده) رو هم در Key قرار میده.
ادامه

حلقه Do while در PHP

حلقه Do while ویرایش شده حلقه while هست که در درس قبلی توضیح دادیم. تنها فرق این حلقه اینه که شرط بعد از اجرا شدن کدها بررسی میشه پس در حلقه Do while  کدهای داخل بلاک حداقل یک بار اجرا میشن.

Syntax

do
  {
  code to be executed;
  }
while (condition);

 

ادامه

توابع در PHP

میشه تعریف های زیادی برای تابع اورد اما چیزی که مشخصه تابع اسمیه که ما به یک بلاک کد میدیم تا هر وقت صداش کردیم یه سری کارها رو برای ما انجام بده. قدرت واقعی PHP از توابعی که داره سرچشمه میگیره. در PHP بیش از ۷۰۰ تابع وجود داره که هر کدوم کارهای خاصی انجام میدن.

چرا و چه وقت از توابع استفاده کنم؟ 

استفاده از توابع اسکریپت هایی که مینویسیم رو بسیار خوانا تر میکنه. ما میتونیم تابع رو یک بار بنویسیم و بعد در هر جای صفحه و بارها اون رو فراخوانی کنیم. پس مجبور نیستیم کدهای تکراری بنویسیم.

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

ادامه

فرم ها در PHP

اگر دقت کرده باشید کمتر میبینید تو یه اسکریپت PHP از از تگ form استفاده نشده باشه. از فرمها برای ارسال اطلاعات به فایل خاصی استفاده میشه و توسط متغیرهای از پیش تعریف شده  GET ، $_POST_$ و REQUEST_$ میشه اطلاعات ارسال شده رو دریافت کرد. اما معمولا از REQUEST_$ زیاد استفاده نمیشه.

مثال:

ما دو فایل با نامهای index.php و  welcome.php ایجاد میکنیم ، در فایل اول  ما یک فرم html ، دو کادر متنی و یک دکمه submit داریم:

ادامه

elseif در PHP

دستورات if و else هنگامی که میخوایم یک شرط رو بررسی کنیم گزینه خیلی خوبی هستند اما خیلی اوقات پیش میاد که بخوایم دو یا چند شرط رو بررسی کنیم اینجاست که دستور elseif بکارمون میاد.

Syntax

IF (conditional statement 1) {
  [code if condition statement 1 is true]
}
ELSEIF (conditional statement 2) {
  [code if condition statement 2 is true]
}
...
ELSE {
  [code if none of the above is true]
}

 

Colon Syntax

if (conditional statement 1):
  [code if condition statement 1 is true]

elseif (conditional statement 2):
  [code if condition statement 2 is true]
else:
  [code if none of the above is true]
endif;

 

ادامه

گرامر(Syntax) زبان PHP

قبل از اینکه در مورد گرامر یا سینتکس زبان پی اچ پی صحبت کنیم اول باید ببینیم Syntax به چی میگن.

Syntax:  قوانینی که باید رعایت بشه تا کد ما ساختار درستی داشته باشه و بدرستی اجرا بشه.

سینتکس PHP بسیار شبیه به زبان های برنامه نویسی مثل C,Java و Perl هست. تمام کدهای PHP ما باید داخل تگ php باشند که به این صورته:

<?php
echo "I love PHP";
?>

یا:

<?
echo "I love PHP";
?>

توصیه میکنیم هنگام نوشتن کدهای PHP  از روش استاندارد یعنی روش اول (php?>) استفاده کنید چون برای استفاده از روش دوم باید تابع short_open_tag فعال شده باشه که ممکنه تو همه سرور ها جواب نده. ادامه