2012-03-02 4 views
0

Я пытаюсь вызвать переменную с командой, что мне нужно отправить CLI окна, не повезло, если вы можете, пожалуйста, помогите мнеPHP вызова переменной в сложных цитат

$imagename = 123; 

$test = ('C:\Windows\System32\cmd.exe /c "rundll32.exe C:\Windows\System32\shimgvw.dll,ImageView_PrintTo /pt "c:\pathtodirectory\$imagename" "photoprint""'); 
echo $test 

$imagename в настоящее время имеет значение 123, но я не могу назвать это в нескольких цитатах, пожалуйста, помогите.

Спасибо.

+0

Функции и методы «называются», переменные «используются», «упоминаются» или «интерполированы». – deceze

+0

Я не думаю, что кавычки будут работать, даже вне PHP. У вас есть скрытые кавычки внутри блоков цитат. Я думаю, что Windows бросит все на это, прежде чем вы столкнетесь с какими-либо другими проблемами. – rockerest

+0

Извините, что вызванный vs использовал im только для того, чтобы столкнуться с попыткой заставить это работать, и команда действительно работает, если я использую его с именем файла и не пытаюсь использовать переменную, просто чтобы это было запущено с таким количеством цитат – Umi

ответ

0

Как насчет этого?

$imagename = 123; 
$test = 'C:\Windows\System32\cmd.exe /c "rundll32.exe C:\Windows\System32\shimgvw.dll,ImageView_PrintTo /pt "c:\pathtodirectory\\' . $imagename . '" "photoprint"'; 
echo $test; 
+0

yup, что один работает, могу ли я использовать $ test с exec или shell_exec? – Umi

+0

Большое спасибо FMC – Umi

+0

Второй параметр 'exec()' будет массивом, содержащим каждую строку выходного файла команды; 'shell_exec()' возвращает строку, содержащую вывод команды. Это твой выбор. – FMCorz

0

Ваша начальная строка находится в одинарных кавычках, а PHP не анализирует переменные в одинарных кавычках.

Попробуйте либо $test = ("C:\Windows\System32\cmd.exe /c \"rundll32.exe C:\Windows\System32\shimgvw.dll,ImageView_PrintTo /pt \"c:\pathtodirectory\$imagename\" \"photoprint\"\"");

или $test = ('C:\Windows\System32\cmd.exe /c "rundll32.exe C:\Windows\System32\shimgvw.dll,ImageView_PrintTo /pt ' . "\"c:\pathtodirectory\$imagename\"" . ' "photoprint""');

+0

C: \ Windows \ System32 \ cmd.exe/c "rundll32.exe C: \ Windows \ System32 \ shimgvw.dll, ImageView_PrintTo/pt" c: \ pathtodirectory $ imagename "" photoprint "" Я все еще получаю $ imagename вместо 123 – Umi