بررسی توابع PHP
در این تایپیک توابع مهم php مورد بررسی قرار می گیرد.
و سعی می کنم کوتاه باشه منبع اصلی مثالها مورد استفاده سایت php.net و w3schools.com و ... است.
تابع substr : این تابع برای کوتاه کردن و برداشتن کلمات یا خطوط یک متن استفاده می شود. کاربرد عمده این تابع در خلاصه مطلب برداشتن و ادامه مطلب دادن به یک پست است.
مثال :
<?php
?>
خرو جی :
reza
Mohamad
حالت کلی : در حالت کلی این تابع سه پارامتر دارد که پارامتر اول، متغیر یا رشته است و پارامتر دوم، کاراکتر شروع را مشخص می کند یعنی مثلا اگر 1 باشد از کارکتر دوم شروع میکند و کارکتر اول را نادیده می گیرد. پارامتر سوم ، طول کارکتر را مشخص می کند و اگر این مقدار منفی باشد از انتهای رشته به صورت برعکس بر می گردد مثلا اگر مقدارش 1 باشد آخرین کاراکتر رشته را حذف می کند .
مثال :
<?php
?>
خروجی :
abcd
abcde
خط اول : از کارکتر اول شروع و 4 کاراکتر ار انتخاب می کند.
خط دوم : با چاپ br ، یک خط به پایین رفته و دستور بعدی سپس چاپ می شود برای اینکه دو خروجی به هم نچسبند.
خط سوم: از کاراکتر اول شروع و مقدار بعدی چون منفی یک است از انتهای رشته شروع و کاراکتر آخر را در نظر نگرفته و حذف می کند.
تابع strrev : این تابع رشته و متن دریافتی را برعکس می کند.
مثال :
<?php
?>
خروجی : ten.noohkesar//:ptth
این تابع رشته بالا را به صورت معکوس تبدیل می کند ولی این تابع با فارسی مشکل دارد برای معکوس کردن متن فارسی از یک تابع دیگر استفاده می شود.
حل مشکل برعکس کردن متن فارسی : برای این کار نمی توانید از تابع strrev استفاده کنید و از تابع زیر استفاده می شود.
<?php
?>
خروجی : نوخسار تیاس
تابع str_repeat : این تابع رشته ای که می گیرد را تکرار می کند.
مثال :
<?php
?>
خروجی : °~ °~ °~ °~ °~ °~ °~ °~ °~ °~
این تابع دو پارامتر دارد: 1- پارامتر اول، رشته ورودی را می گیرد. 2- پارامتر دوم، تعداد تکرار رشته را مشخص می کند.
تابع ord : این تابع عدد را گرفته و کد اسکی معادل آن را برمی گرداند.
تابع chr : برعکس تابع بالا کد اسکی را گرفته و کاراکتر معادل آن را برمی گرداند.
مثال 1 :
<?php
?>
خروجی : 97
مثال 2 :
<?php
?>
خروجی : A
مثال 3 : معادل کاراکتری عدد اسکی بین 97 تا 123 را چاپ کنید.
<?php
?>
خروجی : a b c d e f g h i j k l m n o p q r s t u v w x y z
همین طور که می دانید معادل کاراکتری عدد اسکی 97 تا 123 حروف الفبای کوچک انگلیسی است که در یک حلقه با تابع chr چاپ شده سپس یک فاصله بین حروف چاپ می شود.
تابع str_split : این تابع یک رشته را گرفته و برا اساس طولی که می گیره رشته رو تقسیم کرده و خروجی رو در یک آرایه می ریزه که با یک حلقه می توانید آن را چاپ کنید.
مثال : یک رشته را گرفته و آن را به قسمتهای 3 کاراکتری تقسیم کرده و چاپ کند.
<?php
?>
خروجی : Array ( [0] => In [1] => the [2] => na [3] => me [4] => of [5] => god )
In <=[0]
the<=[1]
na<=[2]
me <=[3]
of <=[4]
god<=[5]
همین طور که قبلا اشاره شد خروجی این تابع به صورت آرایه است. و در خروجی اول با دستور print_r مشاهده می کنید ولی در حلقه for چون اندیس آرایه مشخص است اندیس آرایه به همراه مقدار آرایه چاپ شده است لازم به این نکته اشاره کنم که فاصله هم یک کاراکتر است و بعضی که دو حرفی است حرف سوم اسپیس است.
در حلقه for مقدار count طول آرایه را بر می گرداند. بقیه هم مشخص است.
تابع explode : این تابع بر اساس جدا کننده مشخص شده یک رشته را به چندین قسمت جدا کرده و خروجی را درون یک آرایه برمی گرداند.
که ورودی اول تابع نوع جداکننده و مقدار دوم رشته است. این تابع یکی از توابع مهم کار با رشته ها است.
مثال :
<?php
?>
خروجی :
butter
milk
sugar
salt
در تابع explode ، بر اساس جدا کننده "," رشته بالا به چهار رشته جداگانه تقسیم شده و داخل یک آرایه ذخیره می شود سپس در حلقه foreach مقادیر ذخیره شده چاپ می شود .
تابع parse_url : يک URL دریافت کرده و آرايه اي حاوي اجزاي آدرس خروجی اش است اجزا ""آدرس شامل قسمتهای زیر:
- scheme: همون http يا https يا ftp و غيره
- host: دامنه اصلي مثل rasekhoon.net
- port: پورت که
- user: نام کاربری username
- pass: رمز يا password
- path: مسير آدرس بعد از دامين
- query: کوئري يعني کاراکترهاي بعد از علامت "?"
- fragment: يا hash يا کاراکترهايي که بعد از علامت "#" هستند
مثال :
<?php
?>
خروجی :
scheme: http
host: www.melonfire.com
port: 80
path: /community/columns/trog/article.php
query: id=79&page=2
تابع parse_url، آدرس را گرفته و اجزاء آن را در آرایه ای قرار می دهد سپس در حلقه foreach اندیس آرایه و مقدار آن را چاپ می کند. وقتی که بخواهیم به یک جزء آن دسترسی داشته باشیم مثلا port می توانیم نام آرایه با اندیس آن که port است استفاده کنیم.
مانند:
که فقط پورت آدرس چاپ می شود.
تابع str_replace : این تابع دارای سه آرگومان، اولی، کاراکتری که باید پیدا کند و دومی، کاراکتری که جایگزین می شود و پارامتر آخر رشته مورد استفاده در تابع است. یعنی این تابع یک کاراکتر یا رشته رو توی یک کاراکتر یا رشته دیگه پیدا کرده و جایگزین می کند.
مثال : در رشته زیر علی را یافته و به جای آن احمد را جایگزین کند.
<?php
?>
خروجی : Ahmad says hello to reza
مثال 2 : در این مثال چندین حرف از رشته حذف می شود.
<?php
?>
خروجی : Hll Wrld f PHP
در اینجا به جای یک کاراکتر یا کلمه از چندین کاراکتر در آرایه برای جایگزین شدن در رشته در نظر گرفته شده است و خروجی این تابع در یک متغیر ذخیره شده سپس چاپ می شود.
مثال 3 :
<?php
?>
خروجی : You should eat pizza, beer, and ice cream every day
در رشته phrase مقادیر آرایه healthy یافت شده و با مقادیر آرایه yummy جایگزین می شود.
البته مثالهای زیادی تو سایت php.net است که می توانید مطالعه کنید.
تابع preg_replace : این تابع مانند تابع str_replace ، یک یا چند کاراکتر یا حرف را در رشته ورودی یافته و با مقادیر مورد نظر جایگزین می کند تفاوت این تابع با str_replace ، قدرت و انعطاف بیشتر و جایگزینی همزمان چندین کاراکتر با استفاده از علائم منظم است.
مثال1 :
$string = 'The quick brown fox jumped over the lazy dog.';
$patterns = array();
$patterns[0] = '/quick/';
$patterns[1] = '/brown/';
$patterns[2] = '/fox/';
$replacements = array();
$replacements[2] = 'bear';
$replacements[1] = 'black';
$replacements[0] = 'slow';
echo preg_replace($patterns, $replacements, $string);
?>
خروجی : The bear black slow jumped over the lazy dog
ابتدا یک رشته تعریف شده سپس آرایه patterns تعریف شده است، آرایه مقداردهی شده و آرایه replacements هم همین طور تعریف و مقداردهی شده است سپس در تابع preg_replace در آرگومان اول مقادیر آرایه patterns را در رشته string یافته سپس با مقادیر آرایه replacements جایگزین می کند.
در آرایه ها جایگزینی به ترتیب مقدار دهی آرایه است و با اندیس آرایه کاری ندارد.
تابع sizeof : این تابع شمارش طول آرایه (تعداد خانه های آرایه) را انجام می دهد. وقتی که طول آرایه را نداریم و می خواهیم از حلقه for استفاده کنیم این تابع استفاده می شود.
مثال :
<?php
?>
خروجی :
ابتدا آرایه را که شامل چهار نام است تعریف شده و سپس با استفاده از تابع اندازه طول آرایه که 4 است در متغیری قرار گرفته سپس چاپ می شود.
سلام خدمت دوست عزیز
واقعا مطالب کاربردی هستش
ممنون
تابع implode : این تابع یکی از توابع مهم پی اچ پی است و برعکس تابع explode که یک رشته را گرفته و بر اساس جداکننده ، کار جداسازی را انجام داده و خروجی یک آرایه است تابع implode یک آرایه را گرفته و خروجی آن یک رشته است.
مثال 1 : آرایه ای را گرفته و به یک رشته تبدیل کند.
$arr = array('Hello','World!','Beautiful','Day!');
echo implode(" ",$arr);
?>
خروجی :
تابع implode بر اساس جدا کننده که فاصله است عناصر آرایه را به رشته تبدیل می کند. اگر جدا کننده مثلا خط فاصله بود بین عناصر آرایه خط فاصله قرار می گرفت.
مثال 2 : آرایه را گرفته سپس بر اساس جدا کننده در خروجی یک رشته چاپ می کند.
<?php
//تعریف آرایه
$array = array('lastname', 'email', 'phone');// براساس جدا کننده که ویرگول است آرایه را گرفته سپس تبدیل به رشته می کند
$comma_separated = implode(" ~~> ", $array);
//result: zero ~~> one ~~> twoecho $comma_separated;
?> خروجی :
تابع array_slice : این تابع یک آرایه را گرفته و قسمت مشخصی از آن را در خروجی می دهد. این تابع یکی از توابع کاربردی php است.
ورودی تابع آرایه ~~> خروجی تابع آرایه
چهار مشخصه و آرگومان دارد، عبارتند از :
- مشخصه اول : نام آرایه ورودی
- مشخصه دوم : نقطه شروع برش، اگر مثبت باشد از اول شروع مي شود و اگر منفي باشد از آخر آرایه.
- مشخصه سوم : تعداد خانه های از آرایه که باید جدا شود.
- مشخصه چهارم : و بالاخره مهمترین مشخصه، دو حالت true , false دارد که پیش فرض false است و اگر true باشد مقدار اندیسی که در آرایه ورودی دارد را برای آرایه خروجی در نظر می گیرد. مثلا اگر اندیس یک خانه آرایه 5 باشد در آرایه جدید هم همین اندیس را خواهد داشت ولی در غیر این صورت اندیس های آرایه خروجی از صفر شروع می شود.
ساختار تابع :
مثال : آرایه ای را تعریف و قسمتی از آن را چاپ کند.
// تعریف آرایه
$a=array(0=>"Ali",1=>"Reza",2=>"Hasam",3=>"Amin",4=>"Mohamad");
// چاپ آرایه با توجه به اندیس شروع و طول پیمایش آرایه
print_r(array_slice($a,2,3));
echo "<br>";
print_r(array_slice($a,2,3,true));
echo "<br>";
print_r((array_slice($a,-2,2));
?>
خروجی :
Array ( [2] => Hasam [3] => Amin [4] => Mohamad )
Array ( [0] => Amin [1] => Mohamad )
ابتدا آرایه تعریف شده و در اولین تابع مشخصه اول، نام تابع و مشخصه دوم، اندیس شروع که 2 است و مشخصه سوم، طول پیمایش آرایه که 3 است. تابع از اندیس دوم که حسن است شروع و سه خانه آرایه را پیمایش و در آرایه خروجی با اندیس 0 تا 2 ذخیره می کند. سپس یک br چاپ می شود تا یک خط به پایین برود.
تابع دوم هم مانند خط قبل است با این تفاوت که وضعیت ذخیره اندیس true است که باعث می شود اندیس آرایه ورودی در آرایه خروجی حفظ شود.
تابع سوم مانند تابع اول است با این تفاوت که مشخصه شروع منفی است و از سمت چپ آرایه شروع کرده و 2 خانه آخر آرایه را جدا می کند.
سلام خدمت دوست گرامی
لطف میکنید منبع رو هم ذکر کنید.
با تشکر