120


'

توابع رشته ای در php


string '
'


رشته چیست؟

همانطور که در آموزش متغیر ها در php آموختیم، رشته ها نوعی از داده ها هستند که برای ذخیره کردن اطلاعاتی همچون کلمات، حروف، نماد ها و ... استفاده می شوند. این نوع داده ها می توانند برای نشان دادن جملاتی همچون code was success و یا پاسخ هایی از این قبیل به مخاطب استفاده شوند تا بتواند نتیجه کار انجام شده را ببیند. این داده ها برای انتقال اطلاعاتی به غیر از اعداد و بایت ها کاربرد دارند.

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

در آموزش متغیر ها در php گفته شد که رشته در زبان php هر چیزی است که بین " " یا ' ' قرار بگیرد، حتی اگر عدد باشد. پس برای مثال It's turn 2 یک رشته است. در برخی موارد ما نیاز خواهیم داشت که برروی یک رشته اعمالی انجام دهیم، مانند بریدن رشته، پیدا کردن یک حرف در رشته، پیدا کردن طول رشته و کارهایی از این قبیل. هر زبان برنامه نویسی متدها و توابعی برای انجام این اعمال را به صورت پیشفرض دارد و php نیز از این قاعده مستثنی نیست.

توابع رشته ای در php

برای انجام یکسری تغییرات و اعمل برروی رشته ها، ما به توابع رشته ای نیاز خواهیم داشت. توابع رشته ای یعنی توابعی که می توانند اعمالی را برروی یک رشته انجام دهند، مثل تکه کردن رشته، پیدا کردن تعداد کلمات رشته و ... . زبان php دارای توابع رشته ای نسبتاً کاملی است که با آنها آشنا خواهیم شد.

strlen

این تابع یک ورودی رشته می پذیرد و طول آن رشته را به عنوان خروجی بر می گرداند. برای مثال اگر ما بخواهیم در برنامه چتمان، محدودیتی برای تعداد کاراکتر های پیام قرار دهیم، می توانیم طول رشته را با این تابع پیدا کرده و محدودیت های خود را اعمال کنیم.

str_word_count

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

strrev

تابع strrev کاربرد زیادی ندارد و به ندرت پیش می آید که بخواهید از آن استفاده کنید، اما باز هم یادگیری آن خالی از لطف نیست. این تابع یک رشته را به عنوان ورودی می پذیرد و خروجی آن برعکس شده همان رشته است، برای مثال اگر hello را به آن بدهیم، olleh را بر می گرداند.

strpos

strpos از آن دسته توابعی است که استفاده آن بسیار زیاد است. این تابع می تواند در بسیاری از پروژه هایی که با رشته ها سر و کار دارند به کار بیاید و کاربرد آن، پیدا کردن یک رشته در رشته دیگر است. برای مثال اگر بخواهید رشته test را در رشته It is test پیدا کنید، می توانید از این تابع استفاده کنید. نحوه استفاده از تابع به این صورت است که ورودی اول رشته اصلی است و ورودی دوم رشته ای است که می خواهیم پیدا شود، خروجی آن نیز اندیس رشته دوم در رشته اصلی است. (اگر رشته دوم در رشته اصلی وجود نداشته باشد، خروجی -1 خواهد بود) از این تابع نیز می توان برای تشخیص وجود داشتن کلمه های زشت و فحش در پیام استفاده کرد.

strpos_function

str_replace

این تابع نیز دیگر تابع کاربردی در مبحث رشته ها است که برای تغییر قسمتی از رشته ساخته شده است. آموختیم که تابع strpos می تواند برای مثال test را در It is test پیدا کند، اما اگر بخواهیم It is test به It is game تغییر پیدا کند چه؟ باید test را به game تبدیل کنیم و برای اینکار می توانیم از تابع str_replace استفاده کنیم. این تابع سه ورودی می پذیرد که ورودی اول رشته اصلی ما است، ورودی دوم رشته ای که می خواهیم عوض شود و ورودی سوم نیز رشته ای که می خواهیم به جای آن قرار بگیرد، خروجی نیز رشته ساخته شده است.

کاربرد این تابع نیز می تواند به این صورت باشد که اگر بخواهید برای مثال قسمتی از یک پیام را با ویرایش کنید، برای مثال برنامه چت شما به این صورت است که همیشه به جای کلمه game کلمه بازی را می نویسد، پس می توان از این تابع در چنین شرایطی استفاده کرد.

str_replace_function

chop

این تابع برای تکه کردن رشته به کار می رود، دو ورودی می گیرد که ورودی اول رشته اصلی است. برای مثال اگر ورودی اول Hello world باشد، و ورودی دوم نیز world باشد، خروجی Hello خواهد بود. البته باید دقت کنید که اگر بعد world باز هم رشته ادامه داشته باشد، عمل نخواهد کرد.

توابع رشته ای چه کاربرد هایی دارند؟

توابع رشته ای به طور کل برای پردازش رشته ها هستند به طوری که بتوان برروی آنها اعمالی انجام داد. در بند های بالا، ما کاربرد توابع را برای یک پروژه خیالی مثل ساخت برنامه چت گفتیم، اما باید بدانید که این توابع کاربرد های بسیار بیشتری از یک برنامه چت دارند. به طور کل هرجا که با رشته ها سروکار داشته باشیم و بخواهیم برروی یک رشته کاری را انجام دهیم، می توانیم از توابع رشته ای کمک بگیریم. هرچند که ساخت برخی از این توابع مانند strrev و strlen کار سختی نیست، اما زبان php برای ساده تر شدن کار چند تابع را به صورت پیشفرض در اختیار ما قرار داده است.

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

'