3

PHPから実行可能ファイルにパラメーターとしてファイルパスを渡したいのですが、ファイルパスにスペースが含まれている可能性があります。実行可能ファイルはパラメータの前後の引用符を処理していないようです。そのため、長い名前の代わりに短いDOS名を渡すことができるのではないかと思いました。

PHPは古いスタイルのDOS8.3ファイル名について何か知っていますか?

4

4 に答える 4

4

php/win32 にはCOM/.net 拡張機能が組み込まれて出荷されます。これを使用して WSH FileSystemObjectを作成し、File オブジェクトのShortPath プロパティをクエリできます。

<?php
$objFSO = new COM("Scripting.FileSystemObject");
$objFile = $objFSO->GetFile(FILE);
echo "path: ", $objFile->Path, "\nshort path: ", $objFile->ShortPath;
例えばプリント
パス: C:\Dokumente und Einstellungen\Volker\Desktop\test.php
短いパス: C:\DOKUME~1\Volker\Desktop\test.php

于 2009-06-16T22:52:10.263 に答える
1

escapeshellarg()パラメータを確認して、二重引用符で囲むことをお勧めします。

于 2009-06-16T22:42:15.307 に答える
1

Windows の Kernel32 でGetShortPathName API が必要です。これを PHP から呼び出すには、Win32 API 拡張機能を使用する必要があります...

于 2009-06-16T22:48:55.060 に答える
0

スペースをバックスラッシュしてみませんか?

Home/My Documents/  --> Home/My\ Documents/
于 2009-06-16T22:36:43.027 に答える