PHP exec命令和转义特殊字符

时间:2011-07-25 23:32:49

标签: php command-line escaping imagemagick

所以我正在使用命令行执行程序与php执行Image Magick转换器,而我遇到的问题是我非常肯定与'!'有关。在里面。有时我可能想使用我的库来调整图像大小而不保持纵横比,而Image Magick有一个命令可以做到这一点。您只需使用'!'附加最大宽度和高度值问题是我无法让它工作,它完全忽略了高度限制。我认为它是因为'!'需要逃脱,但我似乎无法让它工作。任何人都可以告诉我如何让这个命令工作:

exec("convert $theFile -resize $max_Xx$max_Y! $theFile", $outputAry);

$ theFile是图像的路径,$ max_X和max_Y是通过用户设置它们传入的宽度和高度值。没有'!'并且在保持纵横比完美的同时调整大小,但是当它写在那里时,它会忽略高度并且仅在保持原始高度的同时调整宽度。我试过通过在'!'前加一个'\'来逃避它。但它不起作用。任何人对正确的语法都有任何想法吗?

2 个答案:

答案 0 :(得分:1)

尝试-resize {$max_X}x{$max_Y}!
编辑:你仍然可能需要逃避!使用其他答案的建议

答案 1 :(得分:0)

我永远不记得逃避感叹号,但这可能对你有所帮助:

http://php.net/manual/en/function.escapeshellcmd.php