Command line 文件存在,但返回“0”;系统找不到指定的文件";使用UNC路径时

Command line 文件存在,但返回“0”;系统找不到指定的文件";使用UNC路径时,command-line,php,unc,Command Line,Php,Unc,我正在使用PHP检查文件是否存在,然后获取其大小 代码以前工作得很好,但现在我们使用UNC路径,我可以检查路径是否与file(exists($filename))一起存在,但是当我尝试运行exec(“getsize”。$filename,$out)时它尝试运行大约一分钟,然后返回“系统找不到指定的文件”。运行此程序的用户当前是管理员,否则我会认为这是权限问题,但如果它查找到包含file_exists()的文件,但exec()失败,我不确定还会有什么问题 如果您有任何帮助或意见,我们将不胜感激,谢

我正在使用PHP检查文件是否存在,然后获取其大小

代码以前工作得很好,但现在我们使用UNC路径,我可以检查路径是否与
file(exists($filename))
一起存在,但是当我尝试运行
exec(“getsize”。$filename,$out)时它尝试运行大约一分钟,然后返回“系统找不到指定的文件”。运行此程序的用户当前是管理员,否则我会认为这是权限问题,但如果它查找到包含file_exists()的文件,但exec()失败,我不确定还会有什么问题

如果您有任何帮助或意见,我们将不胜感激,谢谢

代码示例:

<?php

$filename = "\\\\server\\share\\file_path_with_folders\\3019-74 (2).zip"; //Example file

if(file_exists($filename)){
    echo "File Exists: " . $filename . "\r\n";  
    // "File Exists: " . $filename" are getting echoed out, so it is succeeding
} else {
    echo "File doesn't exist: " . $filename  . "\r\n";
}

exec("getsize" . $filename, $out); //Runs command line command
//Getting "The system cannot find the file specified" error
echo "Out: " . $out[0] . "\r\n";
//Echos "Out: " and nothing else


?>
如有疑问,请运行

不过,说真的,你应该用你最喜欢的文件访问监控工具来监控这个过程

我不得不冒险猜测一下,但是文件名中的空格可能会导致您的问题。调用
getsize
时,可能需要用一组引号将
$filename
括起来

组装要传递给exec()的命令时,命令和该命令的参数之间还需要一个空格。(此脚本生成等效的“getsizetest.txt”而不是“getsize test.txt”)


如果可能的话,您应该在本地计算机上运行这些命令。

我以为您已经使用了引号,但我添加了带双引号的$filename,这没有任何帮助。我不确定我是否能够在服务器上运行它,必须与服务器人员交谈,但我一定会记住这一点。谢谢@EKW@gv0000添加了一个关于我今天早上注意到的另一个bug的注释,我强烈建议使用PHP交互式shell(这就是我注意到另一个bug的原因…如果我从我自己的建议开始…)