Check broken links in html / json files, sitemap.xml, markdown and robots.txt.
It's working with :
This library can be found on Packagist.
The recommended way to install is through composer.
Edit your composer.json
and add :
{
"require": {
"glicer/link-checker": "dev-master"
}
}
Install dependencies :
php composer.phar install
require 'vendor/autoload.php';
use GlLinkChecker\GlLinkChecker;
use GlLinkChecker\GlLinkCheckerReport;
use Symfony\Component\Finder\Finder;
//relative url use host http://lyon.glicer.com to check link
$linkChecker = new GlLinkChecker('http://lyon.glicer.com');
//construct list of local html and json files to check
$finder = new Finder();
$files = $finder->files()->in('./public')->name("*.html")->name("*.json");
//launch links checking
$result = $linkChecker->checkFiles(
$files,
function ($nbr) {
// called at beginning - $nbr urls to check
},
function ($url, $files) {
// called each $url - $files : list of filename containing $url link
},
function () {
// called at the end
}
);
//convert $result array in a temp html file
$filereport = GlLinkCheckerReport::toTmpHtml('lyonCheck',$result);
//$filereport contain fullpath to html file
print_r($filereport);
you can view $filereport with your browser
require 'vendor/autoload.php';
use GlLinkChecker\GlLinkChecker;
$linkChecker = new GlLinkChecker('http://lyon.glicer.com');
$result = $linkChecker->checkRobotsSitemap();
print_r($result);
GlLinkChecker::checkRobotsSitemap() return an array like :
$result = [
'disallow' =>
['error' => ['/img/', '/download/']],
'sitemap' =>
[
'ok' => [
'/sitemap.xml' =>
[
'ok' =>
[
'/index.html',
'/section/probleme-solution/compresser-css-html-js.html'
]
]
]
]
];
Launch from command line :
vendor\bin\phpunit
Authors : Emmanuel ROECKER & Rym BOUCHAGOUR