PHP:Windowsでのumlautsを使用したファイルアクセス

Webサーバー上のファイルは、常にスペースなし( "this is a picture.jpg"ではない)、umlautsまたは特殊文字( "football.jpg"ではない)、バックスラッシュ( "Arbeit \ Auto.jpg"ではない)、小文字( ""ではない)である必要があります。 test.JPG ")。 しかし、最近、顧客プロジェクトの任意のファイル名を持つ多数のファイルにアクセスして処理する必要がありました。


Linuxシステムでは、デフォルトでumlautsと特殊文字を含むファイルにアクセスできるため、ここで特別な機能を考慮する必要はありません。 Windowsシステムでは、外観が完全に異なります。ここでは、いくつかのトリックを使用して、COMインターフェイスを利用する必要があります。 まず、php.iniに必要な拡張子を含めます

[COM_DOT_NET]
extension = php_com_dotnet.dll

1。 現在、非常に役立つヘルパークラスWinfsUtf8が使用されています。これにより、COMオブジェクトへのアクセスが大幅に簡素化され、ファイルに影響を与えるほぼすべてのPHP関数がマップされます。 ファイルをと統合した後

require_once('WinfsUtf8.php');

結果など、ファイルアクセスのすべての可能性があります

file_exists('ä.jpg');

間違って偽ですが、

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

trueを返します。

バック