Php preg_replace_callback():需要参数2

Php preg_replace_callback():需要参数2,php,Php,我不太清楚在这里该做什么。任何比我更聪明的人的帮助都将不胜感激 Warning: preg_replace_callback(): Requires argument 2, 'strtolower(':0')', to be a valid callback in ....\ on line 380. $css = preg_replace_callback('/(text-shadow\:0)(;|\})/ie', "strtolower('$1 0 0$2')", $css); 这不是回

我不太清楚在这里该做什么。任何比我更聪明的人的帮助都将不胜感激

Warning: preg_replace_callback(): Requires argument 2, 'strtolower(':0')', to be a valid callback in ....\ on line 380.

$css = preg_replace_callback('/(text-shadow\:0)(;|\})/ie', "strtolower('$1 0 0$2')", $css);

这不是回调。这是一个包含PHP代码的字符串:完全不同。回调如下所示:

$css = preg_replace_callback('/(text-shadow\:0)(;|\})/ie', function($matches) {
    return strtolower($matches[1] . " 0 0" . $matches[2]);
}, $css);
准确地说,第二个论点必须是一个。当字符串是函数名时,它可以是字符串。如果您使用的是旧版本的PHP,则需要这样做:

function handleMatch($matches) {
    return strtolower($matches[1] . " 0 0" . $matches[2]);
}
$css = preg_replace_callback('/(text-shadow\:0)(;|\})/ie', 'handleMatch', $css);

字符串不是有效的回调。见: