Математическое уравнение для ссылки на страницы - PullRequest
1 голос
/ 18 марта 2011

Это добрый математический запрос. Мне нужен скрипт на php, который будет выполнять следующие действия:

Допустим, у меня есть 100 страниц page1.php, page2.php, page3.php, page4.php ....goes on page100.php

Я хочу создать алгоритм php для связи каждой страницы друг с другом.На каждой странице будет 10 ссылок на другие страницы, но я хочу получить математическое уравнение, которое свяжет каждую страницу.

На странице 1 будет 10 ссылок на другие страницы, на странице 2 будет 10 ссылок на другие страницы.пока каждая страница не будет одинаково связана в общей сложности 100 страниц друг с другом.

Ответы [ 3 ]

3 голосов
/ 18 марта 2011

Одним простым способом было бы сослаться на предыдущую и следующую пять страниц, оборачиваясь от 100:

  • 1 ссылки на 96, 97, 98, 99, 100, 2, 3, 4, 5, 6
  • 2 ссылки на 97, 98, 99, 100, 1, 3, 4, 5, 6, 7
  • ...
  • 100 ссылки на 95, 96, 97, 98, 99, 1, 2, 3, 4, 5

Каждая страница получает ссылку ровно 10 раз (с точных страниц, на которые она ссылается)


Конечно, вместо того, чтобы делать что-то странное, возможно, вам стоит подумать об улучшении вашего пользовательского интерфейса? Например, иметь выпадающий список или, что еще лучше, окно поиска, чтобы пользователи могли найти то, что искали?

1 голос
/ 18 марта 2011

почему у вас так много страниц php. почему вы не используете php метод $ _GET.

вместо: page1.php, page2.php, page3.php, page4.php .... идет на page100.php

Ваши пользователи будут переходить: content.php? Page = 1, content.php? Page = 2, content.php? Page = 3 ...

и на странице content.php вы можете иметь массив страниц:

$pages = array (1,2,3,4,...)

, а затем:

if(in_array($_GET['page'], $pages){
    //do stuff for whatever page is set
}

и затем в нижней части каждой страницы вы можете вывести все имеющиеся у вас страницы:

shuffle($pages); //put pages in a random order
$count = 0;
foreach($pages as $page){
    echo "<a href='content.php?page=$page'>Page $page</a>";
    if($count < 10){
        $count++;
    }
    else break;
}
0 голосов
/ 18 марта 2011

Аналогично ответу менеджера, но отображает только 10 страниц по соседству с текущей страницей.

define("TOTAL_PAGES", 100);
define("FOOTER_LINK_COUNT", 10);
$page = isset($_GET['page']) ? (int)$_GET['page'] : 1;

// Range check
if ( $page < 1 || $page > TOTAL_PAGES ) {
  $page = 1;
}

// You can display a header here if you'd like

// Include actual content page
include("page{$page}.php");

// Generate the footer    
echo "<ul>\n";
for (
  // Maths! Start at the current page, minus half of the total number of links to display
  // but don't go below 0 (negative pages) and don't go over the total number of pages
  $i = min(
    max(0, $page - ceil(FOOTER_LINK_COUNT / 2)),
    TOTAL_PAGES - FOOTER_LINK_COUNT
  ), 
  $c = 1; 
  $c <= FOOTER_LINK_COUNT;
  ++$c ) {
  printf("\t<li><a href='?page=%1\$d'>%1\$d</a></li>\n", $i + $c);
}

echo "</ul>";

Итак, для страницы 1 вы видите 1,2,3,4,5,6,7, 8,9,10

Для страницы 10: 6,7,8,9,10,11,12,13,14,15

Для страницы 95: 91,92,93, 94,95,96,97,98,99,100

...