数组中url的上一个和下一个链接

时间:2011-08-19 12:58:32

标签: php arrays pagination

这是我的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”将在mod_rewrite enable(http://www.example.com/page0/)

中加载到url中

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

3 个答案:

答案 0 :(得分:3)

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

$next$prev包含数组键。

答案 1 :(得分:0)

我认为,只需从$ _GET ['项目']获取数字,减少/增加应该是你想要的。如果您将'page0'更改为数字'0',则可以简化此问题。

答案 2 :(得分:0)

所以..实际上这是糟糕的结构。您可以将您的数组放到像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并创建页面控制器

,则会好得多
相关问题