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

ウェブサーバー上のファイルは、常にスペースなし(「this is an image.jpg」など)、ウムラウトや特殊文字なし(「football.jpg」など)、バックスラッシュなし(「work\car.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を返します。

バック