ImageMagick更新后,preg_match失败

时间:2012-01-06 00:23:32

标签: php regex imagemagick preg-match phpthumb

我遇到preg_match

的问题
$versionstring[1] = 'Version: ImageMagick 6.4.6 2010-01-20 Q8 OpenMP http://www.imagemagick.org Copyright: Copyright (C) 1999-2009 ImageMagick Studio LLC';

preg_match('#^Version: [^0-9]*([ 0-9\\.\\:Q/\\-]+) (http|file)\:#i', $versionstring[1], $matches)) 

返回false

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:4)

由于你的正则表达式正常工作,OpenMP被添加到ImageMagic版本字符串中,所以作为一个快速修复,你可以像这样添加OpenMP:

preg_match('#^Version: [^0-9]*([ 0-9\\.\\:Q/\\-]+) OpenMP (http|file)\:#i', $versionstring[1], $matches);

但请注意,这可能会在未来的升级中再次发生,因此,根据您使用的内容,您可以考虑使正则表达式更少字符串,只需提取您需要的信息。