这是一种善良的数学查询..我想在php中执行以下的脚本
假设我有100页page1.php,page2.php,page3.php,page4.php ....转到page100.php
我想创建一个php算法来将每个页面相互链接。每个页面都有10个页面链接到其他页面,但我想要一个链接每个页面的数学方程式。
第1页将有10个指向其他页面的链接,第2页将有10个指向其他页面的链接,这将继续执行,直到每个页面相互链接为100页。
答案 0 :(得分:3)
一种简单的方法是链接到前一页和后五页,从100开始:
每个页面都会链接到10次(从它链接到自身的确切页面)
当然,也许你应该考虑简单地改进你的UI,而不是做这样的奇怪事情?例如,有一个下拉菜单,甚至更好的搜索框,用户可以找到他们想要的内容?
答案 1 :(得分:1)
为什么你有这么多的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;
}
答案 2 :(得分:0)
与manitor的答案类似,但只在当前页面附近显示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