"file_exists" özel karakterler

1 Cevap php

Ben özel karakter (harf İsveçli AAO) kullanın.

Now, I have some folders, which contains images for classifieds. The folders are named by category.

for ($i=1; $i<=5; $i++){
    if (file_exists($big_images.$i.'.jpg')){ echo "Inne";
        unlink($big_images.$i.'.jpg');
    }
    if (file_exists($thumb_images.$i.'.jpg')){
        unlink($thumb_images.$i.'.jpg');
        }
    }

I allow up to 5 images on my site, each ending with a nr 1-5. However, my problem is this, whenever the folder-name has a special character, the file_exists returns false, ie it doesn't find the file. Even though it is there.

Tüm belgeler utf-8 formatında.

Klasör adlarında özel karakterler olduğunda bu çalışır.

Eğer daha fazla girdi ihtiyacınız varsa bana bildirin

1 Cevap

Sunucu işletim sistemi nedir?

Windows ise PHP tarafından kullanılan C IO kütüphanelerin Windows uygulaması sadece sistem varsayılan kod sayfası konuşacağız, çünkü, bir UTF-8 kodlanmış bir dosya adı altında dosyalara erişmek mümkün olacak değil. Batı Avrupa yükler için, bu kod sayfası 1252 etsen iconv kullanarak CP1252 bir UTF-8 dizesi dönüştürebilirsiniz.:

$winfilename= iconv('utf-8', 'cp1252', $utffilename);

(utf8_decode da kullanılabilir, ancak CP1252 yılında aralığı 0x80-0x9F eşleştirmek Windows'ın uzatma karakterler için yanlış sonuçlar verecektir.)

Isimleri (Batı kutusunda örneğin Yunanca) sistem kod sayfası repertuarı dışında karakterler Dosyaları PHP ve stdio kullanan diğer programlar tarafından hiç ulaşılamaz. Orada Win32 API'leri ile yerli-Unicode dosya adları kullanabilirsiniz dilleri komut dosyası, ancak PHP5 bunlardan biri değildir.

Dosya sistemi UTF-8 kodlanmış Farklı işletim sistemi üzerinde konuşlandırılmış ve tabii yukarıdaki adımı kullanılmamalıdır. (Yani, modern Linux.)

Eğer sorunsuz çapraz sunucu-uyumlu PHP ile gerekiyorsa, size dosya ASCII olmayan karakterleri kullanmaktan kaçınmaları gerekir. Özür dilerim.