我正在做一些关于从PHP最小化html的研究。像
class themeing
{
function render( $file, $folder )
{
if ( COMPRESS ) {
// this is the problem
ob_start('compressor');
}
$get = VIEWS . $folder . '/' . $file . '.phtml';
if ( COMPRESS ) {
ob_end_flush();
}
return $get;
}
function compressor($buffer)
{
$search = array(
'/<!--(.|\s)*?-->/',
'/\>[^\S ]+/s',
'/[^\S ]+\</s',
'/(\s)+/s'
);
$replace = array(
'',
'>',
'<',
'\\1'
);
$buffer = preg_replace($search, $replace, $buffer);
return $buffer;
}
}
问题是如何调用此ob_start(函数)?我们可以像ob_start($ this-&gt; compresssor())那样做吗? (好吧,我知道它失败了)在课堂上?谁?
感谢您的关注。
Adam Ramadhan
答案 0 :(得分:14)
ob_start(array($this,'compressor'))
PHP使用array(instance,function) representation将类的成员函数表示为可调用函数。
答案 1 :(得分:0)
如果你有一个静态方法,它可以像这样访问:
ob_start(array(get_called_class(),'compressor'))