پرونده ها در سرورهای وب همیشه باید بدون فاصله باشند (نه "این یک تصویر است. 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');
درست برگردد