PDA

View Full Version : سوال: محدود کردن تعداد کارکتر ورودی



.fatemeh
جمعه 23 آبان 1393, 19:07 عصر
سلام
توی یه کادر با طول و عرض مشخص قراره متنی نمایش داده میشه.
به دلیل شرایطی طول و عرض باید ثابت باشه.
متن داخل کادر از قسمت مدیریت سایت ثبت میشه.به همین خاطر می خوام محدودیت تعداد کارکتر بزارم تا زیادی متن قرار نگیره.
برای به دست آوردن حداکثر تعداد کارکتر مجاز برای ثبت به اندازه مناسب داخل کادر ، متن تایپ کردم و با mb_strlen
مقدارش رو بدست آوردم بعد توی مدیریت توی خاصیت maxlength مربوط به textarea همون مقدار رو قرار دادم.
ولی درست نشده.
مقداری که خودم بدست آودم 540 کارکتر بود وقتی maxlength رو روی 540 گذاشتم و متن رو تایپ کردم و مقدار mb_strlen رو گرفتم
شده بود 900
حدس می زنم به خاطر خاصیت utf8 باشه ولی نمی دونم چه طوری باید درستش کنم.:ناراحت:
لطفا راهنمایی کنید.

Mohammadsgh
جمعه 23 آبان 1393, 21:00 عصر
برای نمایش باید از این تابع استفاده کنید.پارامتر یکم متنی که نمایش میده.دوم از فلان کارکتر سوم.تا فلان کارکترشو نمایش میده


mb_substr($matn,0,54);

.fatemeh
شنبه 24 آبان 1393, 09:24 صبح
نه منظورم این نبود.
کد شما 54 تا رو نمایش میده اگر بیشتر بود، بقیه توی ادامه مطلب باید بیاد
متن داخل کادر من ادامه مطلب نداره
من می خوام کاربر بیشتر از ارتفاع اون کادر تایپ نکنه.

saeed-71
شنبه 24 آبان 1393, 09:39 صبح
mb_substr($rows['det'],0,500,'utf-8')

hamedarian2009
شنبه 24 آبان 1393, 10:42 صبح
خب کاراکترهای اسکی هر کدوم یک بایت هستن اما کاراکترهای یونیکد هرکدوم دو بایت هستن و برای اینکه بفهمونی به مفسر php که این کاراکتر یونیکد هست باید از mb_strlen استفاده کنی
شما باید متن رو اینطوری اندازشو در میاوردی :


mb_strlen($_POST['matn'], 'UTF-8')

هرعددی که بهت داد بزار داخل maxlength حتما درست کار میکنه