我发现此代码用于检查网址上的链接。
<?php
$url = "http://example.com";
$input = @file_get_contents($url);
$dom = new DOMDocument();
$dom->strictErrorChecking = false;
@$dom->loadHTML($input);
$links = $dom->getElementsByTagName('a');
foreach($links as $link) {
if ($link->hasAttribute('href')) {
$href = $link->getAttribute('href');
if (stripos($href, 'shows') !== false) {
echo "<p>http://example.com" . $href . "</p>\n";
}
}
}
?>
效果很好,它会显示包含“节目”的所有链接。 例如,上面的脚本找到3个链接,所以我得到:
<p>http://example.com/shows/Link1</p>
<p>http://example.com/shows/Link2</p>
<p>http://example.com/shows/Link3</p>
现在,我尝试做的是检查我刚刚提取的那些网址,以查找包含“节目”的链接。
说实话我是一个PHP菜鸟,所以我不知道从哪里开始:(
此致 巴特
答案 0 :(得分:2)
类似的东西:
function checklinks($url){
$input = @file_get_contents($url);
$dom = new DOMDocument();
$dom->strictErrorChecking = false;
@$dom->loadHTML($input);
$links = $dom->getElementsByTagName('a');
foreach($links as $link) {
if ($link->hasAttribute('href')) {
$href = $link->getAttribute('href');
if (stripos($href, 'shows') !== false) {
echo "<p>" . $url . "/" . $href . "</p>\n";
checklinks($url . "/" . $href);
}
}
}
}
$url = "http://example.com";
checklinks($url);
使其递归 - 在函数本身中再次调用该函数。