我在Ubuntu 12服務器上使用ImageMagick 6.6.9。我的問題是,我的ImageMagick convert命令,這是我通過使用shell_exec
功能PHP運行(但也嘗試exec
),在它的字符將PHP escapeshellcmd
功能與\
PHP escapeshellcmd()使用'>'符號打破ImageMagick轉換命令
這裏逃脫是我的PHP代碼:
$result = exec(escapeshellcmd($convertString));
這裏是我的樣品convert命令:
/usr/bin/convert "/Users/rich/Sites/example/1234.JPG" -quality 85 -auto-orient -thumbnail "640x88>" "/Users/rich/Sites/example/1234-thumb.jpg"
最後這裏是convert命令AF之三已經通過escapeshellcmd
運行:
/usr/bin/convert "/Users/rich/Sites/example/1234.JPG" -quality 85 -auto-orient -thumbnail "640x88\>" "/Users/rich/Sites/example/1234-thumb.jpg"
的問題是,轉義\>
字符導致一個ImageMagick的錯誤:
convert: invalid argument for option -thumbnail': 640x88> @ error/convert.c/ConvertImageCommand/2770.
有誰知道的方式,我可以解決這個問題?我已經蒐羅ImageMagick的文件,雖然他們承認這個問題似乎他們不提供調整圖像的任何其他方式,而無需使用特殊字符UNIX:
The Only Shrink Flag ('>' flag) is a special character in both UNIX Shell and in Window batch scripts, and you will need to escape that character (using backslash '>' in shell, and '^>' in windows batch). It is also special in and HTML web pages, so PHP scripts also may need some special handling.
許多在此先感謝。