上一个和下一个链接与url在数组中


Previous and next link with url in array

这是我的php代码

<?php
$pageOK = array('page0' => 'page0.php',
                  'page1' => 'content1.php',
                  'page2' => 'anotherContent2.php',
                  'page3' => 'anotherpagewithotherlink.php',
                  'page4' => 'blablabla.php',
                  'page5' => 'bleh.php',
                  'page6' => 'foo.php',
                  'page7' => 'bar.php');

  if ( (isset($_GET['projet'])) && (isset($pageOK[$_GET['projet']])) ) {
    include($pageOK[$_GET['projet']]);   
  } 
?>

这将使在排序"index.php?Project =page0"将加载在url与mod_rewrite启用(http://www.example.com/page0/)

注意url是不同的。我的问题是如何使Prev/Next链接转到下一个或上一个数组,如果它是第一个隐藏Prev链接和最后一个隐藏Next链接。

foreach($pageOK as $key => $val){
    if($key == $_GET['projet']){
        $next = key($pageOK);
        break;
    }
    $prev = $key;
}

$next$prev保存数组键

我想,只是从$_GET['project']和减少/增加应该是你想要的数字。如果你把'page0'改成数字'0',这个问题就简化了。

so…实际上这是一个糟糕的结构。您可以将数组放入pages.php等公共文件中,并在每个页面上包含它。例如page0。php

require_once ('pages.php');
$page_name = 'bar.php';
$key = array_search($page_name, $pageOK);
if ($key !== FALSE)
{
    $key_arr = array_keys($pageOK);
    $index = array_search($key, $key_arr);
    if (!empty($index))
    {
      buildLink($key_arr[$index-1], 'Prev page');
    }
    if ($index !== count($key_arr)-1)
    {
            buildLink($key_arr[$index+1], 'Next page');
    }
}

pages.php的代码

$pageOK = array('page0' => 'page0.php',
                  'page1' => 'content1.php',
                  'page2' => 'anotherContent2.php',
                  'page3' => 'anotherpagewithotherlink.php',
                  'page4' => 'blablabla.php',
                  'page5' => 'bleh.php',
                  'page6' => 'foo.php',
                  'page7' => 'bar.php');
function buildLink($page, $anchor)
{
  if (isset($pageOK($page)))
  {
    print '<a href="$root_url.$page">'.$anchor.'</a>';
  }
}

但是如果你将页面数组移动到db并创建页面控制器

就更好了