文章导航PC6首页软件下载单机游戏安卓资源苹果资源

pc软件新闻网络操作系统办公工具编程服务器软件评测

安卓新闻资讯应用教程刷机教程安卓游戏攻略tv资讯深度阅读综合安卓评测

苹果ios资讯苹果手机越狱备份教程美化教程ios软件教程mac教程

单机游戏角色扮演即时战略动作射击棋牌游戏体育竞技模拟经营其它游戏游戏工具

网游cf活动dnf活动lol周免英雄lol礼包

手游最新动态手游评测手游活动新游预告手游问答

您的位置:首页网页设计PHP实例 → 怎样用PHP来给网页做导航栏

怎样用PHP来给网页做导航栏

时间:2004/11/7 3:22:00来源:本站整理作者:蓝点我要评论(0)

怎样用PHP来给网页做导航栏

原作:Brad Bulger  

译文:李平

译者注:本文原名《Site Navigation with PHP》,原文详述了如何用PHP编程来做出效果理想的网页导航条,本文只选译了其中的部分文章,所选取的部分是文章精髓之所在,只要大家能弄懂这部分内容就可以用同样的原理、思想做出我们需要的效果来,希望给读者能起到抛砖引玉的作用。本文只需要读者具备PHP、HTML的初步知识就可以基本读懂了。

  

 译 文:如大家所知PHP对于用数据库驱动的网站(making database-driven sites)来讲可谓功能强大,可是我们是否可以用它来做点其他事情呢?PHP给了我们所有我们期望的工具:for与while的循环结构、数学运算等等,还可以通过两种方式来引用文件:直接引用或向服务器提出申请。其实何止这些,让我们来看一个如何用它来做导航条的例子:

完整的原代码:



<?php

# and this '#' makes this a PHP comment.  

  

$full_path = getenv("REQUEST_URI");

  

$root = dirname($full_path);

$page_file = basename($full_path);

 $page_num = substr($page_file

    , strrpos($page_file, "_") + 1

    , strpos($page_file, ".html") - (strrpos($page_file, "_") + 1)

);



$partial_path = substr($page_file, 0, strrpos($page_file, "_"));

  

$prev_page_file = $partial_path . "_" . (string)($page_num-1) . ".html";

$next_page_file = $partial_path . "_" . (string)($page_num+1) . ".html";

  

$prev_exists = file_exists($prev_page_file);

$next_exists = file_exists($next_page_file);

  

if ($prev_exists)

{

    print "";

    if ($next_exists)

    {

        print " | ";

    }

}

if ($next_exists)

{

    print "next";

}

  

?>//原程序完。



代码分析:  

OK! 前面做了足够的铺垫工作,现在让我们来看看如何来用PHP来完成这项工作:

  



<?php

# and this '#' makes this a PHP comment.  

  

$full_path = getenv("REQUEST_URI");

  

$root = dirname($full_path);

$page_file = basename($full_path);

  

/*

PHP函数getenv()用来取得环境变量的值,REQUEST_URI的值是紧跟在主机名后的部分URL,假如URL

是http://www.yourmom.com/dinner/tuna_1.html, 那它的值就为/dinner/tuna_1.html. 现在我们将得到的那部分URL放在变量$full_path中,再用dirname()函数来从URL中抓取文件目录,用basename()函数取得文件名,用上面的例子来讲dirname()返回值:/dinner/;basename()返回:tuna_1.html。接下来的部分相对有些技巧,假如我们的文件名以story_x的格式命名,其中x代表页码,我们需要从中将我们使用的页码抽出来。当然文件名不一定只有一位数字的模式或只有一个下划线,它可以是tuna_2.html,同样它还可以叫做tuna_234.html甚至是candy_apple_3.html,而我们真正想要的就是位于最后一个“_”和“.html”之间的东东。可采用如下方法:

*/

$page_num = substr($page_file

    , strrpos($page_file, "_") + 1

    , strpos($page_file, ".html") - (strrpos($page_file, "_") + 1)

);

/*

substr($string, $start,[$length] )函数给了我们字符串$string中从$start开始、长为$length或到末尾的字串(方括号中的参数是可选项,如果省略$length,substr就会返回给我们从$start开始直到字符串末尾的字符串),正如每一个优秀的C程序员告诉你的那样,代表字符串开始的位置开始的数字是“0”而不是“1”。

函数strrpos($string, $what)告诉我们字符串$what在变量$string中最后一次出现的位置,我们可以通过它找出文件名中最后一个下划线的位置在哪,同理,接着的strpos($string, $what)告诉我们“.html”首次出现的位置。我们通过运用这三个函数取得在最后一个“_”和“.html”之间的数字(代码中的strpos()+1代表越过“_”自己)。

剩下的部分很简单,首先为上页和下页构造文件名:

*/

$partial_path = substr($page_file, 0, strrpos($page_file, "_"));

  

$prev_page_file = $partial_path . "_" . (string)($page_num-1) . ".html";

$next_page_file = $partial_path . "_" . (string)($page_num+1) . ".html";

  

/*

(string)($page_num+1)将数学运算$page_num+1的结果转化为字符串类型,这样就可以用来与其他字串最终连接成为我们需要的文件名。

*/

/*

现在检查文件是否存在(这段代码假设所有的文件都位于同样的目录下),并最终给出构成页面导航栏的HTML代码。

*/

$prev_exists = file_exists($prev_page_file);

$next_exists = file_exists($next_page_file);

  

if ($prev_exists)

{

    print "";

    if ($next_exists)

    {

        print " | ";

    }

}

if ($next_exists)

{

    print "next";

}

  

?>

 (全文完)  



【本文版权归作者与奥索网共同拥有,如需转载,请注明作者及出处】    



 

 

相关阅读 Windows错误代码大全 Windows错误代码查询激活windows有什么用Mac QQ和Windows QQ聊天记录怎么合并 Mac QQ和Windows QQ聊天记录Windows 10自动更新怎么关闭 如何关闭Windows 10自动更新windows 10 rs4快速预览版17017下载错误问题Win10秋季创意者更新16291更新了什么 win10 16291更新内容windows10秋季创意者更新时间 windows10秋季创意者更新内容kb3150513补丁更新了什么 Windows 10补丁kb3150513是什么

文章评论
发表评论

热门文章 没有查询到任何记录。

最新文章 我的php文件怎么打开_php运算符怎么写 php 如何生成静态页面的函数PHP生成图片缩略图PHP session常见问题集锦及解决办法PHP实现同步远程Mysql

人气排行 DEDE在文章列表文章没有缩略图的不显示图片php+mysq修改用户密码我的php文件怎么打开_如何打开php文件的办法FCKeditor的配置和使用方法使用dedecms建站教程PHP+Ajax实现分页技术图片存储与浏览一例Linux+Apache+PHP+MySQLPHP生成图片缩略图