2013-05-10 2 views
1

Когда я сделать что-то вродеExec не выполняет команду, если путь содержит пробелы

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); 

работает отлично. Может ли это быть исправлено?

ответ

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

Если я правильно помню, вы можете использовать двойные кавычки, если у вас есть пробелы в имени пути или имени файла.

Например:

exec('"c:\\Program Files (x86)\\wkhtmltopdf\\wkhtmltopdf.exe" --footer-center as http://bbc.co.uk c:\\test2.pdf',$output); 
Смежные вопросы