سلام
کلاً فارسی ذخیره کردن داده ها اشتباهه خصوصاً که اگه یه روز بخواید فایل ها رو توسط کنترل پنل هایی مثل سی پنل و دایرکت ادمین مدیریت کنید دیگه کلاً به مشکل می خورید.
به نظرم کاری که جناب omid1991 گفتن یعنی ذخیره نام فایل اصلی که انگلیسیه + نام فارسی فایل در ستون های جدای دیتابیس درست ترین راه حله و اینطوری می تونید با وارد کردن نام فارسی توسط کاربر از طریق دیتابیس نام اصلی فایل رو پیدا کنید و محتواش رو نشون بدید.
اما اگر اینو به هر دلیلی نتونستید یا اگر پروژه بدون دیتابیس دارید می تونید نام فارسی فایل رو Hash کنید و دفعات بعد هم که کاربر درخواست محتوای مرتبط با اون نام فارسی رو کرد دوباره Hash میکنید و چک میکنید که فایلی با این نام Hash شده وجود داره یا نه و اگر وجود داشت فراخوانیش میکنید.
نمونه مثلاً اینطوری:
کد PHP:
<?php
$nameFarsi = 'سلام';
$nameHashShode = md5($nameFarsi) . '.php';
if (file_exists($nameHashShode)){
require_once($nameHashShode);
}
حالا این خیلی ساده است و فقط مثاله بهتره علاوه بر چک کردن ورودی کاربر محض احتیاط بیشتر از Salt هم در هش استفاده کنید.
به علاوه اگر فقط می خواین در آدرس URL فارسی باشه بهتره که فایل index.php اصلی سایت رو موظف مسیر دهی (Routing) مناسب مثل پروژه های MVC کنید تا اینکه بخواید هر فایل php با نام فارسی رو جدا جدا فراخوانی کنید.
همینطور قواعد آپاچی و فایل htaccess. خیلی تو این زمینه کمکتون میکنه.
مثل وردپرس که در واقع هیچ فایل فارسی وجود نداره اما URL فارسی تولید میکنه.