دوشنبه 15 خرداد 1402 |  عضویت / ورود






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

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



این آموزش مربوط است به موضوع آموزش PHP‏ که توسط Hamid در تاریخ: Tuesday, 2011 June 28 ارسال شده است.   |   تعداد بازدید: 10393 بار   |   امتیاز متوسط: امتیازی داده نشده است


-------------------

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

به طور مثال تابع 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 ©