如果path包含空格,则exec不执行命令

时间:2013-05-10 08:19:02

标签: php

当我做

之类的事情时
exec("c:\\Program Files (x86)\\wkhtmltopdf\\wkhtmltopdf.exe --footer-center as  http://bbc.co.uk c:\\test2.pdf",$output);
没有任何反应。文件存在,以下行返回1.

echo file_exists("c:\\Program Files (x86)\\wkhtmltopdf\\wkhtmltopdf.exe");

如果我改变它

 exec("d:\\wkhtmltopdf\\wkhtmltopdf.exe --footer-center as  http://bbc.co.uk c:\\test2.pdf",$output);

工作正常。可以修复吗?

2 个答案:

答案 0 :(得分:1)

您需要引用可执行文件的路径或转义空格。之一:

exec("c:\\Program^ Files^ (x86)\\wkhtmltopdf\\wkhtmltopdf.exe --footer-center as  http://bbc.co.uk c:\\test2.pdf",$output);

exec("\"c:\\Program Files (x86)\\wkhtmltopdf\\wkhtmltopdf.exe\" --footer-center as  http://bbc.co.uk c:\\test2.pdf",$output);

会奏效。

答案 1 :(得分:1)

如果我没记错,当路径名或文件名中有空格时,可以使用双引号

例如:

exec('"c:\\Program Files (x86)\\wkhtmltopdf\\wkhtmltopdf.exe" --footer-center as  http://bbc.co.uk c:\\test2.pdf',$output);