Ниже представлен сканер ссылок, который получает URL страницы на заданной глубине. В конце я добавил регулярное выражение, чтобы соответствовать всем электронным письмам URL, который только что просканирован. Как вы можете видеть во второй части, это file_get_content
та же самая страница, которую она только что загрузила, что означает удвоенное время выполнения, пропускную способность и т. Д.
Вопрос в том, как объединить эти две части, чтобы использовать первую загруженную страницу, чтобы не получить ее снова? Спасибо.
function crawler($url, $depth = 2) {
$dom = new DOMDocument('1.0');
if (!$parts || !@$dom->loadHTMLFile($url)) {
return;
}
.
.
.
//this is where the second part starts
$text = file_get_contents($url);
$res = preg_match_all("/[a-z0-9]+([_\\.-][a-z0-9]+)*@([a-z0-9]+([\.-][a-z0-9]+)*)+\\.[a-z]{2,}/i", $text, $matches);
}