PHP执行命令和转义特殊字符


PHP exec commands and escaping special characters

所以我使用命令行执行php执行图像魔术转换,我有一个问题,我很确定与'!在里面。有时,我可能想使用我的库来调整图像的大小,而不保持长宽比,image Magick有一个命令可以做到这一点。您只需在最大宽度和高度值后面加上一个'!'问题是我不能让它工作,它完全忽略了高度限制。我想这是因为!"需要逃脱,但我似乎不能让它工作。谁能告诉我如何才能让这个命令工作:

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

$theFile是图像的路径,$max_X和max_Y是通过用户设置传入的宽度和高度值。没有"!"它会在保持长宽比的同时调整大小,但在上面写的时候,它会忽略高度,只调整宽度,同时保持原来的高度。我试过在"!"前面放一个"'"来逃避它。’但这行不通。有人对正确的语法有什么想法吗?

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

我不记得必须转义感叹号,但这可能对您有所帮助:

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