تابع explode در PHP

تابع ()explode به ما این اجازه رو میده تا یه رشته رو به چندین بخش تقسیم کنیم، بعد از تقسیم، این تابع رشته ها رو در یک آرایه قرار میده.

شکل کلی

array explode ( string $delimiter , string $string [, int $limit ] )

پارامترها:

  • delimiter$ – عبارت شاخص. عبارتی است که برای جدا کردن رشته به بخش های متخلف از آن استفاده میشود.
  • string$ – رشته مورد نظر.
  • limit$ – پارامتر اختیاری. تعداد تکه ها را مشخص میکند. این پارامتر از ورژن ۴٫۰٫۱ به بعد اضافه شده و از ورژن ۵٫۱٫۰ اعداد منفی را هم قبول میکند.
نکته: این تابع binary-safe است.

ادامه

تابع str_replace در PHP

یکی دیگر از موارد پرکاربرد در کار با رشته ها جایگزین (replace) کردن بخشی از رشته با مقادیر جدیده.

تابعی که برای اینکار استفاده میشه ()str_replace نام داره. این تابع تمام عبارتهای پیدا شده در یک رشته رو با عبارتی که ما به اون میدیم جایگزین میکنه.

شکل کلی

mixed str_replace ( mixed $search , mixed $replace , mixed $subject [, int &$count ] )

پارامترها:

  • search$ – عبارتی است که باید جست و جو شود، میتواند رشته(string) یا آرایه(array) باشد.
  • replace$ – عبارتی است که باید بجای رشته پیدا شده قرار بگیرد، میتواند رشته(string) یا آرایه(array) باشد.
  • subject$ – محتوای رشته ی اصلی است که عملیات Replace روی آن انجام میگیرد.
  • count$ – اگر مشخص شود تعداد جاگذاری های انجام شده را بصورت عددی برمیگرداند. این پارامتر از نسخه ۵٫۰٫۰ به بعد وجود دارد.

ادامه

تابع strpos در PHP

سلام، به بخش کار با رشته ها خوش اومدید، PHP توابع بسیار زیاد و کاملی برای دستکاری رشته ها داره که ما در بخش مقدماتی به پرکاربرد ترین اونها اشاره میکنیم. در این درس با تابع کاربردی ()strpos آشنا میشید.

شکل کلی

mixed strpos ( string $string , mixed $search [, int $offset = 0 ] )

پارامترها:

  • string$ – رشته ای که باید در آن جست و جو شود.
  • search$ – رشته ای که باید در string$ جست و جو شود.
  • offset$ – محل شروع جست و جو را مشخص میکند و همانطور که قبلا توضیح داده شد میدانیم که یک پارامتر اختیاری است.

مقدار بازگشتی:

اگر رشته مورد نظر ما در رشته اصلی وجود داشته باشه مکان یا آفست(offset) اولین کاراکتر در اولین رشته پیدا شده بصورت یک عدد و در صورت پیدا نکردن رشته مقدار false رو بازگشت میده.

نکته:  در علم کامپیوتر به فاصله محل فعلی از ابتدای رشته یا شی offset گفته میشه.
نکته: اشاره گر رشته شمردن رو از عدد ۰ شروع میکنه نه ۱ ،  پس عددی که تابع برمیگردونه n-1 هست.

ادامه

حذف فایل در PHP

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

شکل کلی

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

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

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

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

ادامه

خواندن فایل در PHP

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

توابعی که برای خواندن محتویات فایل مورد استفاده قرار میگیرن:

  • ()fread: دو پارامتر دارد، پارامتر اول File handle و پارامتر دوم تعداد بایت ها برای خواندن را مشخص میکند.
  • ()fgets: یک پارامتر دارد و آن File handle است. لاین اول فایل را میخواند و وقتی به لاین جدید رسید متوقف میشود و اشاره گر فایل به لاین جدید منتقل میشود.
  • ()fgetc: یک پارامتر دارد و آن File handle است. یک کاراکتر از فایل را میخواند و اشاره گر به کاراکتر بعدی منتقل میشود.

همچنین توابع ()file_get_contents() ، file() ، readfile هم برای خوندن محتویا فایل وجود دارن که در قسمت PHP پیشرفته به اونها میپردازیم.

ادامه

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

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

نوشتن در فایل

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

 

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

 

ادامه

باز کردن/بستن فایل ها در PHP

در درس قبلی با نحوه ایجاد فایل آشنا شدید و گفتیم که در زبان PHP برای باز کردن و ایجاد فایل از دستور ()fopen استفاده میشه. در این درس به نحوه باز کردن یک فایل، انواع Modeهای اون، بستن فایل و اینکه چرا باید بعد از پایان کارمون فایل رو ببندیم میپردازیم.

مدها (Modes)

  •  r : باز کردن فایل فقط برای خواندن. اشاره گر فایل در ابتدای فایل قرار میگیرد.
  • +r : باز کردن فایل برای خواندن و نوشتن. اشاره گر فایل در ابتدای فایل قرار میگیرد.
  • w : باز کردن فایل فقط برای نوشتن. اگر فایل وجود داشته باشد محتویات آن پاک میشود واگر وجود نداشته باشد آن را ایجاد میکند.
  • +w : باز کردن فایل برای خواندن و نوشتن. اگر فایل وجود داشته باشد محتویات آن پاک میشود واگر وجود نداشته باشد آن را ایجاد میکند.
  • a : باز کردن فایل برای الحاق کردن محتویات جدید. فایل برای نوشتن باز میشود، اشاره گر فایل در انتهای فایل قرار میگیرد و در صورت موجود نبودن فایل آن را ایجاد میکند.
  • +a: باز کردن فایل برای خواندن یا الحاق کردن محتویات جدید. فایل برای نوشتن باز میشود، اشاره گر فایل در انتهای فایل قرار میگیرد و در صورت موجود نبودن فایل آن را ایجاد میکند.
  • x : نحوه کارش دقیقا مثل w است با این تفاوت که اگر فایل مشخص شده موجود نباشد آن را ایجاد نمیکند و مقدار FALSE را بازگشت میدهد.
  • +x : نحوه کارش دقیقا مثل +w است با این تفاوت که اگر فایل مشخص شده موجود نباشد آن را ایجاد نمیکند و مقدار FALSE را بازگشت میدهد.

ادامه

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

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

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

 

Syntax

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

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

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

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

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

 

ادامه

Post و Get در PHP

همونطور که عملا تو درس فرم ها دیدید، برای جمع آوری اطلاعات ارسال شده توسط تگ form از متغیرهای از پیش تعریف شده‌ی POST_$ و GET_$ استفاده میکنیم.

 

GET_$

از GET_$ برای دریافت اطلاعاتی که با متد GET که در تگ form مشخص شده استفاده میکنیم.

  • هنگامی که متد ارسال اطلاعات در تگ form رو روی GET تنظیم کنید (“method=”GET) اطلاعات در URL نمایش داده میشن بنابراین برای ارسال اطلاعات مهم مثل پسورد نباید از این متد استفاده بشه.
  • برای ارسال مقادیر بزرگ نباید از این متد استفاده بشه چون طول اطلاعات ارسالی نمیتونه بیشتر از ۲۰۰۰ کاراکتر باشه. در صورت رعایت نکردن این مهم با خطای Request-URI Too Large مواجه میشید.

POST_$

از POST_$ برای دریافت اطلاعاتی که با متد POST که در تگ form مشخص شده استفاده میکنیم.

  • برخلاف متد GET، در متد POST اطلاعات در URL نمایش داده نمیشن پس برای ارسال اطلاعات مهم مناسبه.
  • با استفاده از این متد میتونید حجم بسیار زیادی از اطلاعات رو ارسال کنید. البته بصورت پیشفرض حداکثر اطلاعات میتونه ۸ مگابایت باشه که در فایل php.ini مشخص شده، برای کم کردن محدودیت میتونید مقدار post_max_size رو افزاریش بدید.

ادامه

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

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

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

 

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

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

ادامه