3

我想将文件路径作为参数传递给 PHP 的可执行文件,并且文件路径可能包含空格。可执行文件似乎不处理参数周围的引号,所以我想也许我可以传递短 DOS 名称而不是长名称。

PHP 是否了解旧式 DOS 8.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 回答