不是很多PHP /正则表达式的人,但我很困惑为什么PHP Web框架中的某些功能自从Ubuntu 8.04(PHP 5.2.1)迁移到Ubuntu 10.04 LTS(PHP 5.3.2)后就停止了工作。
使用xdebug和远程调试,我可以逐步查看GD库中的一个函数,该函数检查有问题的文件是否具有可以缩略图的mime类型:
function liberty_gd_can_thumbnail_image( $pMimeType ) {
$ret = FALSE;
if( !empty( $pMimeType )) {
$ret = preg_match( '/^image/i', $pMimeType );
}
return $ret;
}
我已经确认$ pMimeType的值是“i”并将该行更改为$ret = true;
可以解决问题,但我不确定为什么现在不起作用。希望有更好的正则表达式/ PHP技能的人可以在这里提供帮助。
答案 0 :(得分:3)
此代码正在查找以image
开头的MIME类型,例如image/gif
或image/jpeg
。如果$pmimeType
为"i"
,则合法地未通过测试。 i
不是有效的MIME类型,更不用说图像MIME类型了。
我怀疑正则表达式匹配有什么问题。我会考虑这个虚假i
MIME类型的来源。