دوره رایگان دوره رایگان
PHP & MySQL بک اند (Back End)

حل مشکل نمایش حروف فارسی در PHP و MySQL (راهنمای کامل)

حروف فارسی در php
نوشته شده توسط مهدی خسروی

حتما برای شما هم پیش‌ آمده است که هنگام کار با کاراکترها و حروف فارسی در PHP به مشکلاتی بر خورده‌اید. برای مثال کاراکترها برای شما به شکل حروفی ناخوانا و یا علامت های سوال بوجود آمده اند. این مشکل در ۲ حالت مختلف بوجود می ‌آید. حالت اول زمانی که شما میخواهید اطلاعات را وارد دیتابیس (Database) یا پایگاه داده کنید و حالت دوم زمانی که میخاهید اطلاعات را از پایگاه داده بخوانید. در این فایل و مقاله‌ی آموزشی درباره‌ی روش حل مشکل نمایش حروف فارسی در PHP صحبت میکنیم و برای این مشکل، ۴ راه حل مختلف ارائه میدهیم.

 

مشکل حروف فارسی در PHP

اگر میخواهید ۴ روش مختلف برای حل مشکل حروف فارسی در PHP را یاد بگیرید تا کاراکترهای فارسی را به درستی نمایش دهید، فیلم زیر را مشاهده کنید:

آیا گناه کردیم که زبان‌مان فارسی است؟

یکی از مسائلی که ما فارسی زبان‌ها با آن همیشه درگیر هستیم، مشکل زبان‌مان یعنی زبان فارسی است. در بسیاری از جاها ما با زبان فارسی مشکل داریم. بسیاری از نرم افزارها زبان فارسی را ساپورت نمیکنند و خیلی جاها به مشکل میخوریم.البته که این مشکل مخصوص زبان فارسی نیست، و خیلی از رسم الخط‌های غیر انگلیسی هم درگیر این مشکل هستند.

همین مشکل در هنگام کار با کدهای PHP و دیتابیس MySQL نیز وجود دارد. اما برای هر مشکلی، میتوان حداقل یک راه حل پیدا کرد. در این مقاله ۴ راه حل مختلف را یاد میگیریم که چطور میتوانیم در PHP و MySQL کاراکترهای فارسی را نمایش دهیم و مشکل حروف فارسی در PHP را بطور کلی حل کنیم.

نکته: ممکن است یکی از این روش ها برای شما کاربردی باشد و مشکل‌تان را حل کند. اما استفاده از این ۴ روش بصورت هم زمان در تمام پروژه های شما پیشنهاد میشود. مخصوصا روش ۱ و ۲.

 

راه‌ حل های مختلف حل مشکل حروف فارسی در PHP

همانطور که گفتیم، معمولا در ۲ حالت ما با کاراکترهای فارسی به مشکل برمیخوریم:

  • هنگامی که میخواهیم اطلاعات را از دیتابیس بخوانیم.
  • هنگامی که میخواهیم اطلاعات را وارد دیتابیس کنیم.

برای حل مشکل حروف فارسی در PHP راه‌های مختلفی است. که در ادامه، ۴ روش مرسوم برای حل مشکل کاراکترهای فارسی در PHP را بررسی میکنیم.

 

روش اول: یک Query ساده بزنید

روش اول و ساده‌ترین روش این است که یک کوئری (Query) ساده به دیتابیس بزنید. دقیقا مثل همانطور که وقتی میخواهید یک کوئری SELECT را اجرا کنید.

برای مثال کد زیر را نگاه کنید:

در کد بالا، در خط اول به پایگاه داده ای به نام ecommerce وصل شدیم و در خط دوم، یک Query ساده به آن زدیم که حاوی محتوای SET NAMES utf8 میباشد. این یک خط کد ساده، یکی از روش‌های حل مشکل حروف فارسی در PHP است. اگر میخواهید درباره‌‌ی  utf8 بیشتر بدانید صفحه‌ی مربوط به utf8 در ویکی پدیا میتواند خیلی مفید باشد.

 

روش دوم: استفاده از تگ meta

راه حل دوم برای حل مشکل کاراکترها و حروف فارسی در PHP، استفاده از یک خط کد ساده در تگ head کد html شماست. کد زیر را نگاه کنید:
حروف فارسی در PHP
در خط ۴ از این کد، از یک تگ ساده‌ی meta استفاده کرده‌ایم که بتوانیم به مرورگر (Browser) بفهمانیم که قصد استفاده از کاراکتر و حرف فارسی را در فایل خود داریم. این نیز یکی دیگر از روش های حل مشکل حروف فارسی در PHP است که میتوانید از آن استفاده کنید.

 

روش سوم: تعریف Collation هنگام ساخت پایگاه داده (Database)

در روش سوم حل مشکل حروف فارسی در PHP ، شما هنگام ساخت یک دیتابیس جدید در phpmyadmin، باید نوع کاراکترهایی که میخواهید در دیتابیس خود استفاده کنید را مشخص کنید. همانطور که در عکس زیر میبینید، برای اینکار کافی است که هنگام ساخت یک دیتابیس جدید،‌ تنظیمات مربوط به Collation آن‌را روی utf8_general_ci قرار دهید:

حروف فارسی در PHP

 

روش چهارم: تغییر Collation دیتابیس های از قبل ساخته شده

روش سوم برای حل مشکل کاراکترهای فارسی در PHP و MySQL‌، یک تنظیم ساده در phpmyadmin است.

برای اینکار phpmyadmin را باز کنید، یک دیتابیس را انتخاب کنید و از منوی بالا روی Operations کلیک کنید. سپس در بخش Collation، گزینه utf8_general_ci را انتخاب کنید و نهایتا روی Go کلیک کنید. برای توضیحات بیشتر میتوانید آموزش ویدئویی ابتدای صفحه را مشاهده کنید.

حروف فارسی در PHP

اگر در استفاده از حروف فارسی در PHP مشکل دارید، حتما یکی از این ۴ روش مشکل شما را حل خواهد کرد. اما حتما به شما توصیه میکنیم که تمامی این روش ها در هرکدام از پروژه‌هایتان که میخواهید از زبان و کاراکتر و حروف فارسی در آن استفاده کنید، به کار ببرید.

امتیاز مقاله
  • کیفیت فایل آموزشی
  • کیفیت متن مقاله
  • کاربردی بودن مطلب
۴.۸

درباره نویسنده

مهدی خسروی

۸ سال پیش که یادگیری برنامه نویسی رو آغاز کردم، با یک مشکل بزرگ مواجه شدم: کمبود منابع آموزشی حرفه‌ای و کاربردی به زبان فارسی. به همین دلیل، بعد از چندین سال فعالیت حرفه‌ای در زمینه‌ی برنامه نویسی، تصمیم گرفتم دانسته‌ها و تجربیات خودم را با شما عزیزان به اشتراک بگذارم. پیشنهاد میکنم به آدرس yadify.com/gifts حتما سر بزنید :)

۱۰ دیدگاه

  • مگه بهتر از مهدی خسروی هم داریم! 🙂
    یکی از تاثیرگذار ترین آدم های زندگیم بودین و هستین
    فیلم های اولیه زنبیل دات کام رو دارم من هنوز و برای خیلی ها ارسال کردم 😉

    درضمن اینم بگم بعد از کلی گشت و گذار تو نت فقط اینجا تونستم مشکل علامت سوال رو رفع کنم
    و اینکه تازه فهمیدم که اسمتون رو به یادیفای تغییر دادید 🙂
    آرزوی موفقیت دارم براتون

  • سلام و عرض ادب،
    آقا ما این ۴ روشا انجام دادیم ولی همچنان حروف نمایش داده شده نامفهومه(اطلاعات به صورت فارسی درج می شوند ولی در نمایش جور دیگه ی)
    ممنون میشم راهنمایی کندی حدود یک ماهی میشه دارم تموم روشها را امتحان میکنم.
    اینم آیدی تلگرامم ali_eh3ani
    متشکر

    • سلام علی گرامی
      با توجه به صحبتی که داشتیم، به این نتیجه رسیدیم که ممکن هست مشکل از سمت هاست شما باشد. چون در لوکال هاست کد شما بدون هیچ مشکلی اجرا میشود. لطفا با ارائه دهنده‌ی هاست‌تون در تماس باشید.

  • سلام آقای خسروی من تمام کار هایی که شما گفتید رو کردم ولی بازم هم زمانی که میخوام از دیتا بیس متن های فارسی رو بخونم علامت سوال میده به نظرتون مشکل ازچیه؟

    • سلام محمد عزیز
      خیلی بعید میدونم که این روش هارو استفاده کنید و باز هم با کاراکترهای فارسی مشکل داشته باشید.
      حروف فارسی در دیتابیس خوب ذخیره شدن و فقط هنگام نمایش با مشکل مواجه هستید؟ یا کلا در دیتابیس هم به شکل علامت سوال هستند؟

  • آقا انصافا دم شما گرم
    تو ۲۰ تا سایت فارسی و غیر فارسی سرچ کردم مشکلم حل نشد.
    باهمون راه حل اول شما مشکلم حل شد.
    تو ایران نمون تلف میشی

    • سلام پوریا گرامی
      خوشحالم که این آموزش براتون مفید بوده و تونسته مشکلتون رو حل کنه
      در خصوص ایران موندن/یا مهاجرت کردن من نظر متفاوتی با شما دارم. و به نظرم ایران بهترین جا برای رشد و پیشرفت هست. در این باره در آینده حتما در سایت صحبت خواهم کرد.
      ممنونم از شما

  • درود بر شما بسیار مسلط و روان.
    سوال اینکه (در دیتابیسی که از قبل ساخته شده) در قسمت General settings پی اچ پی مای ادمین هم نیاز هست که به utf8_general_ci تغییر داده بشه یا اینکه فقط از Operations باید انجام داد؟
    سوال دوم اینکه utf8_general_ci انتخاب بشه بهتر هست یا utf8_persian_ci?

    • ممنونم از شما محمد عزیز
      اگر هنگام ساخت دیتابیس utf8_general_ci رو انتخاب کنید، دیگر نیازی به انجام اینکار در General Settings نیست. اما اگر بعد از ساخت دیتابیس میخواهید اینکار رو انجام بدید، نیاز هست که از قسمت General Settings اقدام بفرمایید.
      در خصوص تفاوت بین utf8_persian_ci و utf8_general_ci نکته‌ای که هست اینه که در utf8_persian_ci شما بعد از مرتب سازی بر اساس حروف الفا، حروف مخصوص فارسی (گ چ پ ژ) در جای خود قرار میگیرند، اما در utf8_general_ci این حروف در انتها و بعد از آخرین حرف یعنی حرف (ی) قرار خواهند گرفت

درج دیدگاه

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