خانه » تکنولوژی » اینترنت » حل مشکل strlen و str_word_count با حروف فارسی در زبان php

حل مشکل strlen و str_word_count با حروف فارسی در زبان php

زمانی که از تابع ()strlen برای نمایش تعداد کاراکتر رشته فارسی و یا حروف فارسی استفاده کنید قطعا با مشکل مواجه میشید و خروجی غلطی رو دریافت می کنید برای اینکه این مشکل رو حل کنید به دستور زیر عمل کنید.

 

حل مشکل strlen با حروف فارسی

در استفاده از تابع strlen برای حروف انگلیسی به درستی کار میکنه و خروجی کد زیر میشه عدد ۷ که تعداد کاراکتر ما صحیح هستش.

اما تابع strlen برای حروف فارسی به این شکل عمل میکنه که هر حرف فارسی رو دوتا حساب میکنه و فاصله space رو یکی حساب میکنه و خروجی کد زیر میشه عدد ۱۷ که تعداد کاراکتر غلط هستش.

برای اینکه این مشکل رو حل کنیم از تابع mb_strlen استفاده می کنیم. با استفاده از این تابع مشکل ما حل میشه و تعداد کارکتر رو به درستی نمایش میده.

در صورتی که شما از ‘UTF-8’ استفاده نکنید مشکلی پیش نمیاد و به درستی کار میکنه اما بهتره که آرگمان ‘UTF-8’ رو هم بهش بدیم تا یه موقع ایراد نگیره و بی نقص کار کنه.

 

 

حل مشکل str_word_count با زبان فارسی

تابع ()str_word_count هم همانند تابع strlen با حروف زبان فارسی مشکل داره و باید از تابع دیگه ای برای حل این مشکل استفاده کنید.

 

تابع str_word_count تعداد کلمات یک متن رو به ما بر میگردونه و خروجی کد زیر میشه ۲ که تعداد کلمه nik star دو کلمه هست.

اما این کد با حروف یا رشته فارسی به این شکل عمل نمیکنه و هر حروف فارسی رو یک کلمه حساب میکنه و خروجی غلطی رو به ما میده برای اینکه این مشکل رو حل کنیم از تابع count و preg_split استفاده میکنیم به کد زیر توجه کنید.

شما به جای متغییر a$ میتونید رشته مورد نظرتون یا متغییر خودتون رو وارد کنید. با کد بالا مشکل ما حل میشه و خروجی میشه عد ۲ که تعداد کلمات ۲ هست.

 

 

روش دوم برای نمایش تعداد کلمات

موارد بالا رو من از اینترنت دیدم و قرار دادم اما روش پایین روشی هست که به ذهن خودم رسید. روش به این شکله که ما از دو تا تابع برای نمایش تعداد کلمات استفاده میکنیم.

تابع اول تابع ()explode هست این تابع کارش اینه که یک رشته رو با توجه به جداکننده ای که ما وارد کردیم ” ” رشته رو به آرایه تبدیل میکنه. ما در داخل دابل کتیشن یک فاصله ( space ) رو به عنوان جداکننده قرار دادیم. به مثال زیر توجه کنید.

همونطور که در خروجی var_dump می بینید تعداد آرایه رو زده ۳ ، که تعداد کلمات رشته ما هم ۳ هست. پس این فکر خوبیه که ما تعداد آرایه رو به عنوان تعداد کلمات نمایش بدیم.

 

تابع دومی که قرار ازش استفاده کنیم تابع ()count هست کار این تابع اینه که تعداد خانه های یک آرایه رو به ما بر میگردونه.

حالا با استفاده از تابع ()count تعداد خانه های یک آرایه رو در میاریم.

خب شما به این شکل میتونید خروجی رو به عنوان تعداد کلمات به کاربر نمایش بدید. این روش هم برای حروف فارسی یا رشته فارسی هم به درستی عمل میکنه، خیالتون تخت خواب فنری 😀

 

منبع: nikstar.ir

به این مقاله امتیاز دهید

یک ستارهدو ستارهسه ستارهچهار ستارهپنج ستاره
(5 رای, میانگین امتیاز: 5٫00 از 5)
Loading...

دیدگاه ها

ایمیل شما نمایش داده نمی شود

نوشتن دیدگاه

هفده − هفده =