PDA

View Full Version : مبتدی: نمایش علامت � در آخر رشته وقتی substr گرفته میشود؟



mehsaa
یک شنبه 14 مهر 1392, 06:13 صبح
سلام
از یه رشته substr میگیرم، تو بعضی قسمت ها آخرش علامت � نشون داده میشه، بنظرم سر یه حروف خاصی مثل "ه، ل، و" اینجوری میشه، مشکل چیه و از کجا باید حلش کنم؟
مرسی

navid3d_69
یک شنبه 14 مهر 1392, 06:23 صبح
از این کد استفاده کنید



mb_substr($var,0,5, "utf-8");

tmwebseo
یک شنبه 14 مهر 1392, 09:01 صبح
میتوانید قبل ازsubstr کردن با کد strip tag کدهای html را دور بریزی و فقط text را نمایش بدهی

MMSHFE
یک شنبه 14 مهر 1392, 09:12 صبح
مشکل بخاطر اینه که کارکترهای فارسی دو بایتی هستن و substr یک بایتی کار میکنه و وقتی میگین مثلاً 7 کارکتر جدا کن، از ابتدای محل قرارگیری رشته شروع میکنه 7 بایت میره جلو و بقیه رو حذف میکنه که ممکنه این بایت هفتم، دقیقاً وسط یک حرف فارسی باشه و درنتیجه نصف کد اون حرف که کد همون علامت سؤالی هست که گذاشتین، توی رشته وجود داره. راه حلش هم همونطور که دوستمون اشاره کردن، استفاده از mb_substr هست که حواسش به کارکترهای Multibyte هست و کارکتری محاسبه میکنه نه بایتی.

mehsaa
یک شنبه 14 مهر 1392, 12:50 عصر
مشکل بخاطر اینه که کارکترهای فارسی دو بایتی هستن و substr یک بایتی کار میکنه و وقتی میگین مثلاً 7 کارکتر جدا کن، از ابتدای محل قرارگیری رشته شروع میکنه 7 بایت میره جلو و بقیه رو حذف میکنه که ممکنه این بایت هفتم، دقیقاً وسط یک حرف فارسی باشه و درنتیجه نصف کد اون حرف که کد همون علامت سؤالی هست که گذاشتین، توی رشته وجود داره. راه حلش هم همونطور که دوستمون اشاره کردن، استفاده از mb_substr هست که حواسش به کارکترهای Multibyte هست و کارکتری محاسبه میکنه نه بایتی.

خیلی ممنون از توضیحتون مرسی