更新ImageMagick后preg_match失败


preg_match fails after ImageMagick update

我的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)) 

返回错误

我该怎么解决这个问题?

OpenMP是在正则表达式工作后添加到ImageMagic版本字符串中的,因此作为快速修复,您可以像这样添加OpenMP:

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

但请注意,在未来的升级中,这种情况可能会再次发生,因此,根据您使用它的目的,您可以考虑减少regex的字符串特定性,并提取您需要的信息。