چهارشنبه ۲ خرداد ۱۴۰۳ |  عضویت / ورود






[ بخش اصلی آموزشها | افزودن آموزش | داری بیشترین امتیاز | دارای بیشترین بیننده | جدیدترین نظرات ]

نکاتی در مورد مشکلات رشته‌ها و utf8 در زبان PHP


Tuesday, 2011 June 28   نویسنده: Hamid   تعداد بازدید: 10721 بار  #آموزش PHP‏   امتیاز متوسط: امتیازی داده نشده است

اگر درگیر کار با رشته‌ها در زبان پی.اچ.پی شده باشید، می‌دانید که بسیاری از توابع بر روی رشته‌های فارسی کار نمی‌کنند...

به طور مثال تابع substring کاراکتری به شکل لوزی و علامت سؤال در داخل آن، چاپ می‌کند و یا تابع strlen عدد درستی از طول رشته نمی‌دهد.

در بحث پایگاه داده نیز اگر charset بانک را persian_ci_utf8 انتخاب کرده باشید، به صورت عادی نمی‌توانید از آن خروجی بگیرید.

- رفع مشکل توابع مرتبط با رشته:

برای رفع مشکل توابع strlen و substr ابتدا قبل از کار با رشته، عبارت زیر را درج کنید:

mb_internal_encoding('UTF-8');

سپس به جای استفاده از تابع substr از تابع mb_substr استفاده کنید. مثال:

mb_substr("سلام به همه‎",0,3);  // سلا

 

و به جای تابع strlen از تابع mb_strlen استفاده کنید. مثال:

mb_strlen("سلام‎");  // 4

 

- رفع مشکل اتصال به پایگاه داده:

اگر بعد از اتصال به بانک اطلاعاتی (MySQL)، حروف فارسی به درستی از بانک خوانده نشد، بعد از خط اتصال به بانک، کد زیر را قرار دهید:

mysql_set_charset('utf8');

 


.



ارسال سؤال یا نظر


1- مرتضي:
بوسیله: , در: Thursday, 2012 January 19-کد: 3869
بسيار عالي بود . ممنون . مشكلم حل شد


2- Melika.A:
بوسیله: , در: Monday, 2014 August 04-کد: 11160
واقعا بسیار عالی ...
ممنون از شما


3- میثم:
بوسیله: meysam_2020, در: Saturday, 2014 August 16-کد: 11312
با سلام و خسته نباشید.
مهندس مشکلم حل شد.
تشکر از زحماتت.
موفق باشی.


4- ناهید:
بوسیله: , در: Wednesday, 2016 May 25-کد: 14499
ممنون


5- حسین:
بوسیله: , در: Monday, 2017 August 21-کد: 15315
خیلی متشکرrnخدا خیرتون بده

Tutorials ©