آموزش توابع strrev و strstr در php
مقالات برنامه نویسیچگونه به کمک php یک رشته را برعکس کنیم ؟ چگونه میتوان به کمک یک کاراکتر یا کلمه خاص ، یک رشته را توسط php برش داد ؟ بررسی کامل توابع strtr و strrev در php

اگر علاقمند به دنیای برنامه نویسی با زبان php باشید حتما با سیل عظیم توابع کاربردی در این تابع کمی آشنایی دارید . این زبان برنامه نویسی توابعی بسیار زیاد برای قسمتهایی زیاد از کدنویسی را در اختیار شما قرار داده است که یکی از مهمترین این بخشها ، رشتهها هستند . در چند مقاله قبل درمورد توابع رشتهای پرکاربرد در زبان php بسیار صحبت شده و 7 الی 8 تابع کاربردی را خدمتتان معرفی کردیم . در این مقاله نیز تصمیم گرفتیم تا 2 تابع کاربردی دیگر از دسته توابع کار با رشتهها را معرفی کنیم .
توابع strrev و strstr که ازجمله توابع بسیار کاربردی در برنامه نویسی با php هستند . خصوصا تابع strstr که بخشهای بسیاری را میتوان به کمک آن ، به یک داستان جذاب تبدیل کرد . ابتدا از تابع strrev شروع کنیم که سادهتر بوده و عملکردی بسیار جالب دارد .
تابع strrev
اگر خودتان نیز حدس زده باشید ، این تابع بروی رشته ، یک عمل reverse یا همان معکوس کردن انجام میدهد . درکل عبارت reverse به معنی معکوس کردن است . اگر ساختار کلی این تابع را مشاهده کنید بصورت زیر تعریف شده است :
strrev(string $string): string
تعریف بالا بدین معنی است که این تابع یک رشته را دریافت خواهد کرد و خروجی آن نیز رشته است . دقت کنید که در این تابع نمیتوان از نوع داده آرایه بصورت مستقیما استفاده کرد و ورودی باید بصورت string باشد . برای نمونه به مثال زیر دقت کنید :
echo strrev("Hello world!"); // outputs "!dlrow olleH"
همانطور که مشاهده میکنید رشته Hello world! وارد تابع شده است و دقیقا حرف به حرف و نظیر به نظیر از انتهای رشته برعکس شده و خروجی بصورت !dlrow olleH چاپ شده است . این تابع بسته به نوع پروژه میتواند برای شما کاربردی باشد اما باید با توجه به دیزاین پترنهای کدنویسی به درستی از آن استفاده کرد . عملکرد این تابع به همین سادگی است و درپی چیز دیگری نباشید .
تابع strstr
تابع strstr عملکردی بسیار جالب دارد . این تابع به نوعی بررسی کننده نیز هست . تابع strstr به شما کمک خواهد کرد تا در داخل یک رشته ، یک کاراکتر یا کلمه را مشخص کنید و سپس قبل یا بعد از آن کاراکتر یا کلمه را نمایش دهید . علاوه بر نمایش میتوانید مقدار مدنظر را در داخل متغیری ذخیره کرده و عملیات مدنظر را بروی آن انجام دهید . داکیومنت این تابع بصورت زیر است :
strstr(string $haystack, string $needle, bool $before_needle = false): string|false
پارامتر اول تابع ، رشته شما است که قصد دارید روی آن عملیات انجام دهید . ورودی دوم ، رشته یا کاراکتری است که قصد دارید پویش قبل یا بعد متن ، براساس محل آن انجام شود . ورودی سوم نیز که بصورت true یا false است ، تعیین خواهد کرد که قبل از کاراکتر یا کلمه مشخص شده را بررسی کند یا بعد از کاراکتر را ! بصورت پیشفرض این مقدار بصورت false است و بعد از کاراکتری که تعییین کردیم بررسی خواهد شد . برای اینکه درک بهتری داشته باشید ، به مثال زیر دقت کنید :
$email = 'name@example.com';
$domain = strstr($email, '@');
echo $domain; // prints @example.com
در این قسمت تعیین کردیم که داخل رشته که ایمیل است ، علامت @ را درنظر داشته باشد و چون ورودی سوم وارد نشده و false است ، بعد از علامت @ یعنی قسمت @example.com چاپ خواهد شد . اکنون اگر این مثال را بصورت زیر تغییر دهیم :
$user = strstr($email, '@', true);
echo $user; // prints name
قبل از علامت @ برای ما چاپ خواهد شد یعنی فقط قسمت name و البته که علامت @ نیز در این قسمت چاپ نشده است . درحالیکه در مثال بالا ، علامت @ را نیز داشتیم . شما بعنوان برنامه نویس میتوانید از این تابع در محل درستی استفاده کنید . این تابع میتواند برای اعتبارسنجی و بررسی ورودی فرمها توسط کاربران استفاده شود .
- البته باید به یک نکته مهم دقت کنید :
این تابع تا نسخه قبل از php8 فصای خالی را قبول نمیکرد اما در نسخه 8 به بعد ؛ امکان ورود فاصله خالی نیز وجود دارد ( empty string ) ، البته که empty string در رشتههای معمولی که تعداد فضای خالی در آنها زیاد است احتمالا توجیه درستی نداشته باشد اما ممکن است در برخی نمونهها که باید وجود empty string را بررسی کنیم ، وارد کردن empty string مهم باشد . پس در جریان باشید که از نسخه php8 امکان وارد کردن empty string در پارامتر دوم وجود دارد . امیدواریم این محتوای آموزشی نیز برای شما مفید واقع شده باشد .