کار با رشته ها در PHP

سلام به همه دوستان گل گلاب 😀 (گلاب قیصر کاشان ازون گروناش). میخوام یک سری توابع به ظاهر پیش پا افتاده رو به دوستان معرفی کنم 😀 میدونم که امکان داره بلد باشید و سریع دکمه ضربدر مرورگر رو بزنید بگید برو بابا بلدیم اینا رو 😀 ولی بخونید شاید بدردتون خورد.

رشته چیه؟ درست حدس زدید این رشته با رشته ای که توی آش استفاده میکنیم فرق داره! منظور از رشته در زبان های برنامه نویسی مجموعه ای از کاراکتر ها است , یا به زبان ساده تر منظور متن است. اصطلاحا بهش میگیم رشته یا String .

در زبان برنامه نویسی PHP یک سری توابع برای کار کردن با رشته ها در نظر گرفته شده است , در اینجا به توابع مهم برای کار کردن با رشته ها در PHP می پردازیم .

در این اموزش میخوام نحوه کار با توابع زیر رو شرح بدم:

  • chop
  • trim
  • substr
  • strpos
  • stripos
  • str_replace
  • str_ireplace
  • strtoupper
  • strtolower
  • strlen
  • و توابع از نوع mb_substring , mb_strlen که با حروف فارسی سازگار هستند…

این توابع خیلی پر کاربرد هستند , خب بریم سراغ اموزش این توابع و نحوه ی کار کردن با اونا :

اموزش و بررسی تابع chop : اگه شما یک متن داشته باشید که بعد از متن چندتا فضای خالی یا space ایجاد شده باشه , تابع chop فضاهای خالی انتهای متن رو حذف میکنه , طریقه استفاده از این تابع به صورت زیر است:

تابع trim مثل تابع chop عمل میکنه با این تفاوت که علاوه بر فضاهای خالی اخر متن , فضاهای خالی اول متن رو هم حذف میکنه 😀 طریقه استفاده از تابع trim مثل تابع chop است , به مثال زیر دقت کنید:

دوستان عزیزم یه تابع داریم به نام rtrim (ار تریم) این تابع مثل تابع chop هست که فضای خالی اخر متن رو حذف میکنه 😀 بفرما دوتا تابع مثل هم یاد گرفتید!

بررسی تابع substr : اگه شما یه متن داشته باشید و بخواید یه بخشی از متن رو انتخاب کنید و استفاده کنید چیکار میکنید؟ شما میتونید با استفاده از تابع substr یه بخشی از متن رو ببرید(cut کنید) و از قسمت بریده شده استفاده کنید.(بهش میگن زیر متن یا sub string). این تابع سه تا مقدار میگیره , مقدار اول همون متنی است که میخوایم یه تیکه ازش جدا کنیم (کات کنیم) , مقدار دوم نقطه شروع , مقدار سوم نقطه پایان است , این تابع از نقطه شروع تا پایان برامون برش رو انجام میده 😀 اگه این تابع رو با دوتا مقدار ورودی فراخوانی کنیم مقدار اول متن و مقدار دوم شروع در نظر گرفته میشه و نقطه پایان انتهای متن در نظر گرفته میشه. شما میتونید نقطه شروع و پایان رو عدد منفی بدید تا برش به سمت عقب انجام بشه! به مثال زیر دقت کنید:

توی مثال بالا اول اومدیم تابع substr رو با سه مقدار فراخوانی کردیم , بعدش با دومقدار فراخوانی کردیم که در این حالت از نقطه مورد نظر ما تا انتهای متن برش داده میشه. در حالت سوم نیز تابع رو با دو مقدار فراخوانی کردیم اما مقدار دوم رو منفی دادیم , وقتی که مقدار دوم رو منفی بدیم برش از اخر متن انجام میشه , مثلا اگه پارامتر دوم رو منفی۳ بدیم سه کاراکتر اخر متن بریده میشه.

اموزش تابع strpos : فرض کنید یه متن دارید و میخواید ببینید که یک کلمه ی خاص توی این متن وجود داره یا نه ؟ یا اینکه میخواید بدونید که یک کلمه ی خاص توی چندمین کاراکتر از این متن قرار داده شده !!! چیکار میکنید؟ داداننننن! در اینجاس که تابع strpos رونمایی میکند 😀 این تابع یک زیر رشته رو درون رشته اصلی میگرده و اولین مکانش رو بهتون میده (اگه چندبار تکرار شده باشه موقعیت اولین بار رو میده بهمون اگه بخوایم موقعیت اخری رو پیدا کنیم باید از strrpos استفاده کنیم) , اگه زیر رشته در رشته اصلی موجود نباشه عدد ۱- (منفی یک) برگردونده میشه! استفاده از این تابع به صورت زیره:

در مثال بالا میبینید که تابع دوتا مقدار میگیره , مقدار اول متن اصلی , مقدار دوم زیر رشته یا همون رشته ای که میخوایم دنبالش بگردیم! , اگه زیر رشته درون رشته اصلی موجود باشه مکانش برگردونده میشه و در غیر این صورت عدد ۱- (منفی یک) برگردونده میشه .

یک تابع دیگه وجود داره به نام stripos که اگه دقت کنید یه حرف i بیشتر داره , این تابع دقیقا کار تابع strpos رو انجام میده با این تفاوت که در تابع stripos بزرگی و کوچکی حروف مهم نیست و به بزرگی یا کوچیک بودن حروف دقت نمیکنه! اگه شما مثلا حرف T رو درون startup با تابع strpos جستجو کنید مقدار ۱- برگردونده میشه اما اگه همین کار رو با تابع stripos انجام بدید عدد ۲ برگردونده میشه 😀 هرجا که بزرگ یا کوچیک بودن حروف فرقی به حالتون نداره از stripos استفاده کنید.

اموزش تابع str_replace : این تابع ممکنه خیلی بدردتون بخوره , اگه شما بخواید یه تیکه از متن رو با یه چیز دیگه عوض کنید نیاز دارید تا از این تابع استفاده کنید. شما با این تابع میتونید فضاهای خالی درون متن خودتون رو با یه رشته خالی(متن خالی یا ” دوتا کوتیشین که بینش هیچی نیست) عوض کنید تا فضاهای خالی درون متن شما حذف بشه 😀 طریقه استفاده از این تابع چجوریه؟ این تابع سه تا مقدار میگیره. مقدار اول متنی هست که قراره از رشته حذف بشه , مقدار دوم متنی هست که قراره به جای متن اول توی رشته قرار بگیره , و مقدار اخر نیز رشته ی ما هست. خب بریم سراغ یک مثال:

در مثال بالا اومدیم و کلمه ی hi رو با hello عوض کردیم 😀

تابع str_ireplace دقیقا مثل تابع str_replace است با این تفاوت که بین حروف بزرگ و کوچیک تفاوت قائل نمیشه! (مثل توضیحی که برای تابع strpost و stripos دادم).

تابع strtoupper تمامی حروف متن رو به حروف بزرگ تبدیل میکنه! این تابع برای حروف فارسی کاربرد نداره چون ما توی فارسی بزرگ و کوچیک نداریم (همه باهم برابریم هخخخ). این تابع یک مقدار ورودی میگیره و تمامی کاراکتر ها رو به حروف بزرگ تبدیل میکنه , عکس همین کار رو تابع strtolower انجام میده و تمامی حروف رو به حروف کوچیک تبدیل میکنه! به مثال زیر دقت کنید:

در مثال بالا یه متن به تابع strtoupper دادیم و تمامی کاراکترهای اون رو به حروف بزرگ تبدیل کرد , بعدش اون متن رو به تابع strtolower دادیم و تمامی کاراکتر های اون رو به حروف کوچیک تبدیل کرد! (عاقا ما این برنامه رو نوشتیم دیوونه نیستیم این یه مثاله فقط).

بررسی تابع strlen : این تابع یک رشته (متن) رو به عنوان ورودی میگیره و طول رشته رو به ما میده. به مثال زیر دقت کنید:

در مثال بالا یه رشته رو به تابع دادیم و طول رشته رو برامون حساب کرد!

نکته ی خیلی مهم: دوستان عزیز توابعی که برای کار با رشته ها در PHP وجود دارند همه برای استاندارد های زبان انگلیسی در نظر گرفته شدن که هر حرف توی زبان انگلیسی یک بایت (هشت بیت) است! توی زبان فارسی هر حرف (کاراکتر) به صورت یک بایت ذخیره نمیشه و ممکنه یه کاراکتر بیشتر از یه بایت باشه یا کمتر باشه! در اینجاست که توابع کار با متن اون جوابی که ما انتظار داریم رو به ما نمیدن! شما باید اول توابع رشته ای حرف mb رو اظافه کنید تا مشکل حل بشه 😀 , حرف mb نشان دهنده multi bytes یا چند بیتی است 😀 , وقتی که mb رو به توابع متنی اظافه میکنید میتونید به عنوان اخرین پارامتر نوع انکدینگ رو نیز مشخص کنید مثلا utf8 بزارید. خب حالا یه مثال :

در مثال بالا تابع strlen رو به صورت mb_strlen در اوردیم و میبینیم که به درستی کار میکنه 😀  , همچنین در ادامه نوع انکدینگ رو هم بهش دادیم.

خب حالا یه مثال خوب میزنم براتون. یه تابع مینویسم که یه متن رو میگیره و ۵۰ کاراکتر اون رو برش میده و به اخرش سه تا نقطه اظافه میکنه , این تابع برای خلاصه سازی متن پست ها توی وردپرس استفاده شده 😀 شما هم اگه دارید سایت میسازین میتونید از این تابع استفاده کنید 😀

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

به اشتراک بگذارید:Email this to someoneShare on FacebookTweet about this on TwitterShare on Google+Digg thisShare on LinkedInPin on PinterestShare on StumbleUponFlattr the authorShare on RedditBuffer this pageShare on TumblrPrint this pageShare on YummlyShare on VK
  1. AliReza

    سلام
    من یه سوال دارم نمیدونم اینجا جاش هست بپرسم یا نه
    ولی سواله دیگه باید پرسید
    میشه یه توضیحی بدید چطوری میشه این توابع رو به صورت کاربردی استفاده کرد
    یعنی مثلا یه تکس باکس بزاریم که هرچی توش مینویسم با استفاده از این توابع ویرایش بشه و بعد نتیجه رو نشون بده ؟؟

    • میشه هرکاری که به ذهنتون میرسه انجام داد. اگه میخواید که مقدار داخل یک تکست باکس رو تغییر بدید اول باید اون رو دریافت کنید بعدش تغییرش بدید و توی صفحه Echo کنید. توی فروم مطرح کنید دوست عزیزم. اینجا توی قسمت کامنت ها است و نمیشه کد نویسی کرد! برای رفتن به فروم اینجا کلیک کنید. اگه نتونستید توی فروم سوال خودتون رو مطرح کنید دوباره از همین قسمت نظرات بگید تا یک فایل به صورت مثال براتون ایمیل کنم , پیروز و سربلند باشید.

می‌خواهید دیدگاهتان را بیان کنید؟