
همانطور که در بخش مربوط به انواع داده در PHP نیز به آن اشاره کردیم، String یا رشته مجموعه ای از کارکتر هاست. مثلا عبارت “سلام دنیا!” یک رشته است. در ادامه این بخش، به تعدادی از توابع مخصوص به کار با رشته ها در PHP میپردازیم. البته بدیهی است که توابع مخصوص کار با رشته ها در پی اچ پی بسیار زیاد بوده وهر یک کاربرد خاص خود را دارند. بنابراین امکان پرداختن به همه ی آنها در این آموزش میسر نخواهد بود. اما در پایان این بخش از آموزش، برای کسانی که مایلند با کلیه ی این توابع آشنایی پیدا کنند، لینک صفحه مربوط به این توابع در سایت رسمی php را قرار خواهیم داد.
جهت تشخیص طول یک رشته از تابع strlen() استفاده میکنیم. کار این تابع این است که یک رشته را دریافت کرده و طول آن را به ما بر میگرداند :
<?php echo strlen("Hello world!"); // outputs 12 ?> |
خروجی کد بالا 12 خواهد بود. توجه داشته باشید که تابع strlen() در پی اچ پی برای سنجش طول عبارات فارسی مناسب نیست. مثلا اگر در مثال بالا میخواستیم با این تابع طول عبارت “سلام دنیا!” را پیدا کنیم، تابع مقدار 18 را به ما باز میگرداند که طبعا صحیح نیست. بنابراین برای سنجش طول رشته های فارسی بهتر است از تابع mb_strlen() استفاده کنید. مانند مثال زیر :
<?php echo mb_strlen("سلام دنیا", 'UTF-8') ?> |
برای شمارش تعداد کلمات یک رشته در پی اچ پی از تابع str_word_count() استفاده میکنیم. مانند مثال زیر :
<?php echo str_word_count("Hello World!"); ?> |
نتیجه اجرای کد بالا عدد 2 خواهد بود. درست مانند تابع قبلی، این تابع هم برای شمارش کلمات در رشته های فارسی به درستی کار نمیکند. مثلا اگر همین کد را برای شمارش کلمات در عبارت “سلام دنیا!” به کار بگیرید، نتیجه ی بازگردانده شده معادل 0 خواهد بود. به همین جهت برای شمارش تعداد کلمات در رشته های فارسی لازم است از کد زیر استفاده کنید :
<?php $string = "سلام دنیا!"; echo count(preg_split('~[p{Z}p{P}]+~u', $string, null, PREG_SPLIT_NO_EMPTY)); ?> |
برای معکوس کردن یک رشته در پی اچ پی از تابع strrev() استفاده میکنیم. مانند کد زیر :
<?php echo strrev("Hello World!"); ?> |
خروجی این کد عبارت “!dlrow olleH” خواهد بود. مجددا کد بالا نیز برای رشته های فارسی به درستی کار نمیکند. برای رشته های فارسی میتوانید از کد زیر استفاده کنید :
<?php $str = "سلام دنیا!"; preg_match_all('/./us', $str, $fa); echo '<br>'.join('', array_reverse($fa[0])); ?> |
کد بالا به درستی عبارت “!ایند مالس” را در خروجی به نمایش خواهد گذاشت.
برای یافتن عبارتی در یک رشته، از تابع strpos() استفاده میکنیم. اگر تابع بتواند نتیجه ای پیدا کند، موقعیت اولین نتیجه را باز میگرداند و اگر چیزی پیدا نکند، خروجی آن معادل FALSE خواهد بود. در مثال زیر در رشته ی “Hello World!” به دنبال کلمه ی World گشته ایم :
<?php echo strpos("Hello world!", "world"); ?> |
نتیجه ی اجرای کد بالا عدد 6 خواهد بود. حال اگر میخواستیم در یک رشته ی فارسی جستجو کنیم میبایست از کد زیر و تابع mb_strpos() استفاده میکردیم :
<?php echo mb_strpos("سلام دنیا!", "دنیا", 0, "UTF-8"); ?> |
برای جایگزین کردن بخشی از یک رشته با رشته ی دلخواه دیگر از تابع str_replace() استفاده میکنیم. مانند کد زیر :
<?php echo str_replace("دنیا", "به شما", "سلام دنیا!"); ?> |
برای تبدیل اجزای یک رشته به یک آرایه از تابع explode() استفاده میکنیم. سینتکس این تابع به شکل زیر است :
explode(separator,string,limit)
پارامتر اول یعنی separator معادل جداکننده ی دلخواه ما، string رشته ی مورد نظر ما و limit محدودیت تعداد عناصر آرایه را مشخص میکند. تعیین مقدار limit اختیاری است.
تابع explode() در بسیاری از مواقع بسیار کاربردی است. مثلا فرض کنید میخواهیم لیستی از آیتم ها را که با ویرگول از هم جدا شده اند، تبدیل به آرایه کنیم. در این حالت میتوانیم از کد زیر استفاده کنیم :
<?php $str = "dog,cat,zebra,horse,emu,ostrich"; print_r (explode(",",$str)); ?> |
خروجی کد بالا به صورت زیر است :
Array ( [0] => dog [1] => cat [2] => zebra [3] => horse [4] => emu [5] => ostrich )
برای بازگردانی این آرایه به حالت رشته میتوانیم از تابع implode() استفاده کنیم.
تابع md5() جهت تبدیل یک عبارت به هش MD5 به کار میرود. در کد زیر کلمه ی Hello را هش کرده ایم :
<?php $str = "Hello"; echo md5($str); ?> |
از این تابع میتوانید جهت هش کردن رمز های عبور پیش از ذخیره ی آنها در دیتابیس استفاده کنید تا از ذخیره ی رمز به حالت متنی واضح جلوگیری شود.
برای جدا کردن بخشی از یک رشته میتوانید از تابع substr() استفاده کنید.سینتکس استفاده از این تابع به صورت زیر است :
substr(string,start,length)
در این تابع تعیین مقدار length یا طول رشته الزامی نیست و اگر آن را مشخص نکنید، از محل مشخص شده تا انتهای رشته بازگردانده میشود. برای یافتن محل شروع عبارت دلخواه و طول آن میتوانید از دو تابع strpos و strlen که پیش تر در رابطه با آنها صحبت کردیم، استفاده کنید. مثال زیر، کلمه ی World را در خروجی به نمایش در می آورد :
<?php echo substr("Hello world",6); ?> |
همانطور که در ابتدا نیز اشاره کردیم، توابع مخصوص به کار با رشته ها در پی اچ پی به موارد معدودی که در بالا ذکر شد، خلاصه نمیشوند. برای آشنایی با سایر توابع کار را رشته در پی اچ پی میتوانید روی اینجا کلیک کرده و در وبسایت رسمی پی اچ پی با آنها آشنایی پیدا کنید.
مطالعه بخش بعدی : ثابت ها در PHP
برچسب:
نویسنده: استخدام کار