我在 Ubuntu 12 服务器上使用 ImageMagick 6.6.9。我遇到的问题是我的 ImageMagick 转换命令,我使用该shell_exec
函数通过 PHP 运行(但也尝试过exec
),其中包含 PHPescapeshellcmd
函数转义的字符\
这是我的PHP代码:
$result = exec(escapeshellcmd($convertString));
这是我的示例转换命令:
/usr/bin/convert "/Users/rich/Sites/example/1234.JPG" -quality 85 -auto-orient -thumbnail "640x88>" "/Users/rich/Sites/example/1234-thumb.jpg"
最后是运行后的转换命令escapeshellcmd
:
/usr/bin/convert "/Users/rich/Sites/example/1234.JPG" -quality 85 -auto-orient -thumbnail "640x88\>" "/Users/rich/Sites/example/1234-thumb.jpg"
问题是转义\>
字符会导致 ImageMagick 错误:
转换:选项 -thumbnail' 的无效参数:640x88> @error/convert.c/ConvertImageCommand/2770。
有谁知道我可以解决这个问题的方法?我已经浏览了 ImageMagick 文档,虽然他们承认了这个问题,但他们似乎没有提供任何其他方式来调整图像大小而不使用特殊的 unix 字符:
Only Shrink Flag ('>' flag) 是 UNIX Shell 和 Window 批处理脚本中的特殊字符,您需要转义该字符(在 shell 中使用反斜杠 '>',在 windows 批处理中使用 '^>') . 它在 HTML 网页中也很特殊,因此 PHP 脚本也可能需要一些特殊处理。
提前谢谢了。