I've been working on automated testing on our combined PHP/Perl project at The Day Job. PHP doesn't have anything nearly as sweet as Test::Harness and Test::More, so I've had to create my own Test::Harness::Straps subclass to handle PHP output, and a PHP version of Test::More to create the ok/not ok that we all know and love. It's been working fairly well for the past couple of months.
Now that I've got Test::HTML::Lint working, there's no reason that the PHP shouldn't be able to do the same thing, right? So I've now rigged up some PHP to emulate that by running the command-line version of weblint.
PHP has so clearly been designed by a committee, it pains me to try to find functionality. And they're just NOW getting around to opening pipes as file handles. :-(