【发布时间】:2009-06-16 22:30:05
【问题描述】:
我想将文件路径作为参数传递给 PHP 的可执行文件,并且文件路径可能包含空格。可执行文件似乎不处理参数周围的引号,所以我想也许我可以传递短 DOS 名称而不是长名称。
PHP 了解旧式 DOS 8.3 文件名吗?
【问题讨论】:
我想将文件路径作为参数传递给 PHP 的可执行文件,并且文件路径可能包含空格。可执行文件似乎不处理参数周围的引号,所以我想也许我可以传递短 DOS 名称而不是长名称。
PHP 了解旧式 DOS 8.3 文件名吗?
【问题讨论】:
php/win32 附带COM/.net extension built-in。您可以使用它创建一个WSH FileSystemObject,然后查询File object 的ShortPath property。
<?php
$objFSO = new COM("Scripting.FileSystemObject");
$objFile = $objFSO->GetFile(FILE);
echo "path: ", $objFile->Path, "\nshort path: ", $objFile->ShortPath;打印例如path: C:\Dokumente und Einstellungen\Volker\Desktop\test.php 短路径:C:\DOKUME~1\Volker\Desktop\test.php
【讨论】:
您可能想查看escapeshellarg() 并将参数放在双引号之间。
【讨论】:
您需要 Windows 上 Kernel32 中的 GetShortPathName API。要从 PHP 调用它,您需要使用 Win32 API extension...
【讨论】:
反斜杠空格怎么样?
Home/My Documents/ --> Home/My\ Documents/
【讨论】: