Есть ли программа/скрипт/сервис по пакетному определению степени вложенности страниц?

12
[Удален]
#11

Str256, в яззле модуль "карта сайта" парсит сайт и выдает таблицу, где напротив каждого урла указан его уровень вложенности.

Если не принципиален именно ввод урлов списком - то самое оно.

N
На сайте с 31.03.2009
Offline
85
#12

Есть програмка бесплатная, только она по одному урлу проверяет, но очень многофункциональная, в том числе и показывает УВ каждой страницы сайта, очень полезная и легкая в использовании, вот ссылочка: скачать

постоянно в поиске строительных площадок под статьи и ссылки...
S2
На сайте с 07.01.2008
Offline
611
#13

Zonk, Maks Kein, Nikstar,

Maks Kein:
Если не принципиален именно ввод урлов списком
Nikstar:
Есть програмка бесплатная, только она по одному урлу проверяет

Я в 1-м посту, специально указал, что принципиален именно список. По очереди проверить - программ куча.

Есть скажем 500 урлов страниц, с которых стоят ссылки на сайт - нужно проверить уровни страниц. Запустил скрипт - получил результат. Проверять ссылки по 1-й не катит.

Если есть ЧПУ, то можно определять уровень по числу слэшей. Если 2 - 3-й уровень. Если 4-е - 5-й уровень. Если слэш 1-н, то считается что ЧПУ нет - парсятся ссылки морды и сравниваются с заданным урлом - нет совпадения - пишется результат >2.

Алгоритм я дал. Неужели никто написать не может? Если добавить последующую проверку урлов на индекс - то можно уже и коммерчески скрипт реализовывать.

Не надо приписывать мне свои выводы, я имею ввиду только то, что написал. Лучшая партнёрка по футболкам/толстовкам (http://partnerka.kolorado.ru/?ref=1921540) Опрос: Проверить текст на уник - как? (/ru/forum/495885)
VZ
На сайте с 16.09.2007
Offline
40
#14
Str256:

Если есть ЧПУ, то можно определять уровень по числу слэшей.

Нельзя.

В том-же вордпрессе я запросто сделаю любой уровень в виде ttp://site.ru/nazvanie_staty.html

Пробуй. Вроде должно работать.


<?php
$fcontents = file ('c:\urls.txt');
for ($j=0; $j<count($fcontents);$j++)
{
$url = trim($fcontents[$j]);
$pattern = '!http://[^/]+/!Uis';
preg_match($pattern,$url,$matches);

$handle = fopen($matches[0], "rb");
$contents = stream_get_contents($handle);
fclose($handle);


$pattern = "!<a[^>]*href=('|\")([^>]+)('|\")\s+!Uis";
preg_match_all($pattern, $contents, $matches);
//var_dump($matches);
if (in_array($url,$matches[2]))
echo $url . ";2\n\r<br>";
else
echo $url . ";3\n\r<br>";
}
?>
12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий