02.04.2018 10:44:37 am
На одном форуме задавали вопрос, как на PHP получить все внутренние ссылки на странице сайта. Я попытался помочь, сейчас расскажу, что у меня получилось. Написал функцию "getLinks", в которую необходимо добавить URL проверяемой страницы:
Пример использования:
// $url - Адрес страницы, с которой надо получить ссылки
function getLinks($url)
{
$domain = parse_url($url, PHP_URL_HOST); // Получение доменного имени сайта
$html = file_get_contents($url); // Получение исходного кода страницы
// Сбор всех ссылок в массив ("$linksArray")
preg_match_all( '/<a(.*?)<\/a>/is', $html, $linksArray);
$arrayLinks = array();
foreach ($linksArray[0] as $link)
{
// Проверка: Является ли ссылка внутреней
if (strpos($link, $domain) !== false)
{
// Если ссылка внутреняя, добавляем ее в массив
$arrayLinks[] = $link;
}
}
return $arrayLinks;
}
Пример использования:
$links = getLinks('https://danfa.net/forum/thread/1359/');
- Жалоба