PHP: دسترسی به پرونده با umlauts تحت ویندوز

پرونده ها در سرورهای وب همیشه باید بدون فاصله باشند (نه "این یک تصویر است. jpg") ، بدون umlaut یا نویسه های خاص (نه "football.jpg") ، بدون پشت پرده (نه "Arbeit \ Auto.jpg") و با حروف کوچک (نه ") test.JPG "). اخیراً ، من مجبور شدم به تعداد زیادی فایل از پیش تعیین شده با هر نام پرونده برای پروژه مشتری دسترسی پیدا کرده و پردازش کنم.


سیستم های لینوکس به طور پیش فرض امکان دسترسی به پرونده های دارای umlaut و نویسه های خاص را دارند ، بنابراین در اینجا نیازی به بررسی ویژگی های خاصی نیست. در سیستم های ویندوز کاملاً متفاوت به نظر می رسد: در اینجا شما باید از برخی ترفندها استفاده کرده و به رابط COM ضربه بزنید. اول از همه ، شما پسوند مورد نیاز را در php.ini قرار می دهید

[COM_DOT_NET]
extension = php_com_dotnet.dll

یکی اکنون از کلاس کمکی بسیار مفید WinfsUtf8 استفاده شده است که دسترسی به اشیا COM COM را بسیار ساده می کند و تقریباً تمام توابع PHP که روی پرونده ها تأثیر می گذارد را ترسیم می کند. پس از ادغام پرونده با

require_once('WinfsUtf8.php');

یکی از همه امکان دسترسی به پرونده ، به عنوان مثال نتایج را دارد

file_exists('ä.jpg');

نادرست غلط است ، در حالی که

Patchwork\PHP\Override\WinfsUtf8::file_exists('ä.jpg');

درست برگردد

بازگشت