substr متن فارسي

ميخواستم يه متني رو از ديتابيس فراخواني كنم و حدودي از اون متن رو نمايش بدم ولي همه ميدونيد كه متون فارسي تويه ديتابيس به شكل @#$%@#$ ذخيره ميشن ميخواستم بدون ايا تابعي يا كدي چيزي هست كه بتونه تعداد كاراكتر مشخص رو نمايش بده تو فارسي چون ساب استر وقتي ميزني
PHP:
 substr($farsimatn,0,500(;
تقرياب خوب عمل ميكنه ولي حرف {ب} به صورت {@#!$} تويه ديتابيس ذخيره ميشه و اگه با ساب استر انگليسي كاراكتر مشخص كنم اين {ب} رو به صورت {@#} شايد نمايش بده و همين {@#} در ادامه متن ظاهر ميشه !
ممنون ميشم يه تابع خوب براي اين كار معرفي كنيد
با تشكر
 

sunrise

Member
اين تابع رو براتون نوشتم، اميدوارم به دردتون بخوره.
PHP:
function unicode_substr($string, $start, $length = 0)
{
	preg_match_all('#.#u', $string, $characters);	
	$output = $length > 0 ? implode('', array_slice($characters[0], $start, $length)) : implode('', array_slice($characters[0], $start));	
	return $output;
}
 

I.NoBody

Active Member
sunrise جان، از اينكه اينقدر به خوبي از عبارات با قاعده استفاده ميكني و كاملاً باهاش عجين شدي، خيلي حال ميكنم.
من خيلي از مواقع يادم ميره كه ميتونم از اينها هم استفاده كنم.
موفق باشي
 

parsiteam

Member
ممنون حامد جان . علی بود تابع . منم خیلی این مشکل رو داشتم . دستت طلا . :)
 

sunrise

Member
sunrise جان، از اينكه اينقدر به خوبي از عبارات با قاعده استفاده ميكني و كاملاً باهاش عجين شدي، خيلي حال ميكنم.
من خيلي از مواقع يادم ميره كه ميتونم از اينها هم استفاده كنم.
موفق باشي
از لطف شما ممنونم.

من هم کار با regex رو تقريبا از 5 ماه پيش شروع کردم و البته از اين بابت خيلي خوشحال هستم چرا که الان که ترم دوم کارشناسي نرم افزار هستم دو واحد در مورد عبارات قاعده مند هست که اطلاعات پيشين من در اين مورد کمک خوبي براي من هست.
 
دستتون طلا

خيلي ممنون.خيلي رو اين موضوع فكر كردم حتي چند توابع درست كردم كه وقتي به اسپيس برسه استپ كنه ولي به اين خوبي نبودن:D
در كل ممنون :rose:
 
آخرین ویرایش:

sunrise

Member
شما چرا از توابع multibyte خود php استفاده نمیکنی؟
دوستمون درست ميگن، شما حتي مي تونيد براي اين کار از تابع mb_substr نيز استفاده کنيد (که شايد حتي بهينه تر از تابعي که من نوشتم براي اين کار باشه - يعني قطعا همينطور خواهد بود :D)
 

جدیدترین ارسال ها

بالا