drupal7.34的views_slideshow模块有个bug,使用php5.5,报如下错误
preg_replace() /e modifier is deprecated, use preg_replace_callback()
解决的办法就是:
把views_slideshow.theme.inc这个文件的如下代码
foreach ($addons as $addon_id => $addon_info) { foreach ($addon_info['accepts'] as $imp_key => $imp_value) { if (is_array($imp_value)) { $methods[$imp_key][] = preg_replace('/_(.?)/e',"strtoupper('$1')", $addon_id); } else { $methods[$imp_value][] = preg_replace('/_(.?)/e',"strtoupper('$1')", $addon_id); } } }
换成如下代码:
foreach ($addons as $addon_id => $addon_info) { foreach ($addon_info['accepts'] as $imp_key => $imp_value) { if (is_array($imp_value)) { $methods[$imp_key][] = preg_replace_callback( '/_(.?)/', function ($m) { return strtoupper($m[1]); }, $addon_id ); } else { $methods[$imp_value][] = preg_replace_callback( // php5.x preg_replace_callback() method '/_(.?)/', function ($m) { return strtoupper($m[1]); }, $addon_id ); } } }
Drupal 版本