Необходимо нагенерировать ссылки в HTML

Статус
В этой теме нельзя размещать новые ответы.

Kosiak

Гуру форума
Регистрация
12 Сен 2006
Сообщения
627
Реакции
75
Задача такая.
1.
Нужно нагенерировать ссылок, которые идут на увеличение, т.е.:
mysite.ru/index.php?showtopic=1
до, скажем:
mysite.ru/index.php?showtopic=3280
Каким образом такое можно совершить (и с помощью чего)?

2. Полученный список попинговать чем-нибудь и автоматически почистить.

3. Оставшиеся ссылки порезать на страницы, скажем, по 150 ссылок :-]

Буду благодарен за отзывы :ay:
 
*** скрытое содержание ***
Спасибо! Это первая часть задачи, а вторую и третью также реализовать (скриптом) можно?

Я просто думал, что, возможно, есть какой-то програмный инструмент (десктопный), который сможет решить задачу. По крайней мере пункты 2-3 решаются в построителях сайтмапов. А вот по раздельности не знаю даже как...

Добавлено через 14 минут

Где-то засада. ссылка генерируется как:
хотя анкор у неё нормальный. Откуда-то в ссылке этот символ %22 показывается...

Добавлено через 21 минуту
Ага нашёл. будет так:
 
HTML:
<?
$url="mysite.ru/index.php?showtopic="; // начало урл
$urlend=""; //конец урл

$countfrom = 1; // со скольки считать
$countto = 3280; // до скольки считать
$rezak = 150; // по сколько резать
$filename = "linkz"; // имя файла
$fileex = ".html"; // формат файла

$d = 1;
for ($i = $countfrom; $i <= $countto; $i++) 
{

$file = "$filename".$d."$fileex";

$z=$i-$countfrom;

	if($z % $rezak == 0 && $z > 0)
	{
	$d++;
	echo "<h1>Новая страница</h1>";
	}

$f =fopen($file, "a+");


fputs($f,"<a href="."$url"."$i"."$urlend".'">'."$url"."$i"."$urlend"."</a><br>");

echo "<a href="."$url"."$i"."$urlend".'">'."$url"."$i"."$urlend"."</a>";
echo "<br>";
}

fclose($f);
?>

+ резак на страницы...

Для пинга знаний не хватает =)
 
самое простое решение 1-й задачи:

в MS Excel в столбец А вставляем -
mysite.ru/index.php?showtopic=
mysite.ru/index.php?showtopic=
mysite.ru/index.php?showtopic=

в столбец B -
1
2
3

в столбец С функцию -
=СЦЕПИТЬ(A1;B1)
=СЦЕПИТЬ(A2;B2)
=СЦЕПИТЬ(A3;B3)

затем всё выделяем и тянем за правый нижний уголок до нужного количества (3280). Excel делает автоинкримент.

В результате в 3-ем столбце (С) получаем необходимые ссылки.

смотри пример - Посмотреть вложение example.zip
 
Есть идея натравить на получившийся списочек какой-нибудь "пингатор", который составит свой список страниц, которые отдают код 200. А уже потом этот списочек порезать :)
Кто-нибудь может подсказать такой "пингатор"?

Добавлено через 36 минут
Обломался. Сайт не отдаёт 404, он отдаёт свою страницу с ошибкой (а код 200 оставляет)
 
посмотри этот код. Только его нужно исправить под твои нужды: успешные страницы записывать в файл по 150 шт. Т.е. нужно слепить этот код и предыдущий.

PHP:
<?php  
    $site = "mysite.ru";  
    $con = file("dist.txt"); ### файл со страницами (напр. /index.php?showtopic=1)
      
    $x = 0;  
    for($i = 0; $i < count($con); $i++)  
              
    {  
        $fp = fsockopen($site, 80, $errno, $errstr, 30);  
      
        if(!$fp)  
        {  
            echo "$errstr ($errno)<br />\n";  

        }  else {  
              
            $page = trim($con[$i]);  
            $out = "GET ".$page." HTTP/1.1\r\n";  
            $out .= "Host: $site\r\n";  
            $out .= "Connection: close\r\n\r\n";  
              
            fwrite($fp, $out);  

            $data = fgets($fp, 128);  
              
            if(substr_count($data, "Not Found") == 0)  
            {  
                echo ($site.$dir." >>>Success!"."<br>");
                $x++;  
            }  
            if(($i == count($con)-1) && ($x == 0))  
            {  
                echo ("No page found!");  
            }  
            }  
              
    }  
        fclose($fp);  
?>
 
Спасибо, но как я писал выше мне это не поможет. Мне можно только вылавливать неработающие ссылки по заголовку страницы, а не по коду ошибки. Например заголовок "Сообщение форума" говорит скорее всего об ошибке.
 
Compressor, а как в твой последний скрипт добавить код, чтобы содержание страниц было с соответствующими заголовками и футером (ну чтобы добавить туда теги header, body, html), чтобы по стандарту было?
 
Спасибо, но как я писал выше мне это не поможет. Мне можно только вылавливать неработающие ссылки по заголовку страницы, а не по коду ошибки. Например заголовок "Сообщение форума" говорит скорее всего об ошибке.

в этой проверке условия
PHP:
if(substr_count($data, "Not Found") == 0)

ищет вхождение строки "Not Found" в сорце полученной страницы $data

Ты можешь вставить здесь любое другое условие, например:
PHP:
if(substr_count($data, "Сообщение форума") == 0)

если фраза "Сообщение форума" не будет найдена, то значит ошибки нет.





Расскажи, для чего тебе такой скрипт?
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху