Просмотр кода
Название: Парсер всех ссылок с сайта
Описание: Найдено на просторах интернета
Добавил:
__[_]___
Дата: 23 мар 2018, в 15:15
Комментарии (0)
Описание: Найдено на просторах интернета
<?php
$site = 'http://localhost/' ;
foreach (get_urls($site) as $url) {
echo '<a href="' .$url. '">'.$url. '</a><br>' . "n" ;
}
function my_sort ($array) {
$new_array = array();
foreach ($array as $value) {
$new_array[] = $value;
}
return $new_array;
}
function DirnameNormal
($url) {
$fulldir = '' ;
$explode = explode( '/' , $url);
foreach ($explode as $i => $dir) {
if ($dir && $i != (count($explode) -1 )) {
$fulldir .= $dir. '/' ;
}
}
return $fulldir;
}
function JoinToSite ($url, $site) {
$domain = parse_url($site);
$domain = $domain[ 'scheme' ]. '://' .$domain[ 'host' ];
if ($url{ 0} == '/' ) {
$link = $domain.$url;
} else if(preg_match( '~^http(s)?:~i' , $url)) {
if (parse_url($url, PHP_URL_HOST) == parse_url($site, PHP_URL_HOST)) {
$link = $url;
}
} else {
if (!preg_match( '~^(ftp(s)?|javascript|mailto):~i' , $url)) {
$dirname = DirnameNormal(parse_url($site, PHP_URL_PATH));
$link = $domain. '/' .$dirname.$url;
}
}
return ( isset($link) ? $link : false);
}
function GetAllUrlsFromUrl
($url, $all_links) {
$first = file_get_contents($url);
preg_match_all( '~<a[^>]+href[x20]?=[x20x22x27]?([^x20x22x27x3E]+)[x20x22x27]?[^>]*>~i' , $first, $second);
$array_urls = array();
foreach ($second[ 1] as $link) {
$link = JoinToSite($link, $url);
if ($link !== false && !in_array($link, $all_links)) {
$array_urls[] = $link;
}
}
return ((count($array_urls) > 0 ) ? $array_urls :
false );
}
function get_urls ($url, $all_links = array()) {
$get_urls = GetAllUrlsFromUrl($url, $all_links);
if ($get_urls) {
if ($all_links == array()) {
$all_links[] = $url;
}
$all_links = array_merge($all_links, $get_urls);
foreach ($get_urls as $url) {
$GetAllUrls = get_urls($url, $all_links);
return my_sort(array_unique($GetAllUrls));
}
} else {
return $all_links;
}
}
?>
Добавил:

Дата: 23 мар 2018, в 15:15
