Форум SAPE.RU

Форум SAPE.RU (http://forum.sape.ru/index.php)
-   Ошибки при работе с системой (http://forum.sape.ru/forumdisplay.php?f=14)
-   -   Вопрос по links.db (http://forum.sape.ru/showthread.php?t=1968)

Ivan_m 09.05.2007 11:53

Вопрос по links.db
 
Будучи программистом, заинтересовался внутренностью links.db. Это, как оказалось, хеш-массив со ссылками, ключами которого являются адреса страниц моего сайта. Все логично.

Но вот какая штука меня поразила - в массиве зачем-то указаны адреса как со слешем на конце, так и без! То есть все ключи продублированы 2 раза, соответственно, и списки ссылок - тоже. Зачем??? Если хотелось застраховаться от разного задания адресов страниц - убрали бы программно из адреса финальный слеш, и все. Представляю, что будет с файлом links.db, когда ссылки будут стоять на 5000 страниц. Файлик будет мегабайт под 10, хотя мог бы иметь размер ровно в 2 раза меньше...

И еще вопрос - когда этот файл уже создан, с директории, в которой он лежит, уже права на запись 777 можно снять, так?

SergVK 09.05.2007 12:21

как программист откройте скрипт sape.php и посмотрите почему так сделано и почему права должны стоять)))

Ivan_m 09.05.2007 12:29

Цитата:

Сообщение от SergVK
как программист откройте скрипт sape.php и посмотрите почему так сделано и почему права должны стоять)))

Как программист я этого и не понимаю :) Если бы был смысл и он был ясен из файла sape.php, не спрашивал бы.

Ivan_m 09.05.2007 12:38

Вот, строчка 178:

Код:

        if (array_key_exists($this->_request_uri, $this->_links) && is_array($this->_links[$this->_request_uri])) {
            $this->_links_page = $this->_links[$this->_request_uri];
        }

Это - то место, где используется ключ массива со ссылками. Если бы 100 строками выше после кода:

Код:

        // Какая страница?
        if (isset($options['request_uri']) && strlen($options['request_uri'])) {
            $this->_request_uri = $options['request_uri'];
        } else {
            $this->_request_uri = $_SERVER['REQUEST_URI'];
        }

написали что-то типа

Код:

// убираем финальный слеш, если он есть
$this->_request_uri = preg_replace('!/$!', '', $this->_request_uri);

...то ключи сло слешем на конце в links.db были бы не нужны совершенно.

msk01 09.05.2007 14:41

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

1100 ссылок весят 270Кб, можно пережить.
А менять код на 14000 сайтов - тот еще геморрой.

Ank 09.05.2007 19:41

Как только какомунибудь "программисту" придет в голову убрать финальные слеши система лишится половины оптимизатров. Мне напрмер он крайне нужен и важен. Я понимаю, что программер не должен понимать в оптимизации ничего.. он програмить должен.
Волнует размер сапе.дб? Удалите сайт изи системы!

Ivan_m 09.05.2007 21:20

Цитата:

Сообщение от Ank
Как только какомунибудь "программисту" придет в голову убрать финальные слеши система лишится половины оптимизатров. Мне напрмер он крайне нужен и важен. Я понимаю, что программер не должен понимать в оптимизации ничего.. он програмить должен.
Волнует размер сапе.дб? Удалите сайт изи системы!

Вы просто не поняли :) Никто не предлагает убрать финальные слеши из системы :) Я описал способ убрать их из файла links.db.

Ank 10.05.2007 11:04

Код:

Я описал способ убрать их из файла links.db.
Значит так.
Ссылка со слешом и ссылка без него - не идентичные ссылки. Давайте возьмем это за аксиому.
Теперь в линкс дб половина с ним, половина - без.
Выход - либо они там лежат как их положил О, либо в обоих вариантах...
Если так как положил - то ладно. А если все к одному - то нафих.

Ivan_m 10.05.2007 15:34

Цитата:

Сообщение от Ank
Код:

Я описал способ убрать их из файла links.db.
Значит так. Ссылка со слешом и ссылка без него - не идентичные ссылки. Давайте возьмем это за аксиому.

6 лет модерю каталог, в котором несколько тысяч сайтов. Ни разу не встречал сайта, на котором страница со слешом и страница без него одновременно бы присутствовали и содержали разный контент. Если приведете обратный пример, признаю свою неправоту. :)

Ank 10.05.2007 17:39

Цитата:

Сообщение от Ivan_m
Цитата:

Сообщение от Ank
Код:

Я описал способ убрать их из файла links.db.
Значит так. Ссылка со слешом и ссылка без него - не идентичные ссылки. Давайте возьмем это за аксиому.

6 лет модерю каталог, в котором несколько тысяч сайтов. Ни разу не встречал сайта, на котором страница со слешом и страница без него одновременно бы присутствовали и содержали разный контент. Если приведете обратный пример, признаю свою неправоту. :)

А я про разный контет? Хотя... 301 редирект - разный контент? тогда - скока угодно, ну несколько - точно :)
А зачем мне спрашивается ждать, пока яшка получив 301 сообразит, что надо оказывается на со слешом ходить?


Часовой пояс GMT +3, время: 09:56.

Работает на vBulletin® версия 3.8.7.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot
SAPE.RU — система купли-продажи ссылок с главных и внутренних страниц сайтов.