如何在忽略空格的同时比较HTML?

时间:2014-11-04 03:35:22

标签: php html phpunit

我正在测试HTML构建器。我想断言生成的内容与预期的内容相匹配,但我想要一些关于空格的灵活性。

具体来说,我不在乎标签之间的空格是缩进的还是空格缩进的,或者它是否都在一行上。我只关心标签,它们的顺序,属性和内容。

如何判断两个HTML片段是否相等?

1 个答案:

答案 0 :(得分:0)

自我回答,因为我在任何地方都没有找到这个:

/**
 * Compare two HTML fragments.
 */
protected function assertEqualHtml($expected, $actual)
{
    $from = ['/\>[^\S ]+/s', '/[^\S ]+\</s', '/(\s)+/s', '/> </s'];
    $to   = ['>',            '<',            '\\1',      '><'];
    $this->assertEquals(
        preg_replace($from, $to, $expected),
        preg_replace($from, $to, $actual)
    );
}

基于PHP implementation of an HTML minifier