我正在创建一个传递URL并获取页面内容的函数。如果此页面包含“下一步>”,我想抓住其中的网址并继续浏览页面下面的页面,不再包含下一页。
如何做到这一点?一会儿循环?
check_url("http://site.com");
-> url contains 'next', href is http://site.com/ggkdoe
-> does http://site.com/ggkdoe contain next? if so, hit it again and check if that contains 'next' then get that url etc etc
明白了吗?怎么办呢?
提前谢谢
答案 0 :(得分:0)
很可能是这样的:
<?php
$checkNext = false;
$currentURL = "http://site.com";
do {
$check = check_url($currentURL);
if ($check !== null) {
$currentURL = $check;
$checkNext = true;
} else {
$checkNext = false;
}
} while ($checkNext);
我认为check_url()
会返回一个URL(如果找到一个),否则null
。 do
- while
- 循环确保对初始网址至少完成一次检查,然后只要check_url()
找到另一个网址,就会再次检查。最后使用$currentURL
表示您想要做的事情。
答案 1 :(得分:0)
您可以使用递归进行完整的链接搜索:
function checkUrl($url) {
$atLeastOneUrl = true;
// Check your content
// Log some data about current Url
foreach ($urlFound in $urlsFound){
check_url($urlFound);
$atLeastOneUrl=true;
}
return $atLeastOneUrl;
}
但是你要检查链接1 - &gt;链接2 - &gt; ... - &gt; link1周期不会干扰您的搜索;)