Php数组面包屑导航,PHP 导航提示(面包屑型轨迹)
導航提示(面包屑型軌跡)為Web用戶提供了方便、直觀的導航幫助,將用戶的當前位置分解為一個超鏈接路徑提供當前文檔中網站中相對位置的總攬。總體來說,更加優于瀏覽器本身提供的導航工具,而且能夠補充甚至替代一般網站的本地化菜單系統。
這里演示兩種不同的方法,第一種使用數組將難于處理的URL樹轉換為更加友好的用戶命名約定。這種實現對于創建對應基本靜態頁面的導航樹比較實用。第二種使用MySQL數據庫,為數據庫驅動的網站創建用戶友好的導航映射。最后將面包屑軌跡簡單地應用到 WordPress 模板的編寫中。
一、基于靜態數據創建面包屑型軌跡
實現思路:
使用$_SERVER[‘PHP_SELF’] 讀取文件的目錄樹。
將目錄樹各級轉換為數組。
創建一個關聯數組,用來為導航提供用戶友好的名字。
創建URL解析和映射函數create_crumbs()。將其存儲在全局網站頭文件中。
在需要導航提示的頁面執行create_crumbs() 函數。
[code=”php”]
function create_crumbs($crumb_site, $home_label, $crumb_labels) {
$crumb_trail = “$home_label“;
$crumb_tree = explode(‘/’, $_SERVER[‘PHP_SELF’]);
//explode()函數分割字符串到數組,這里以斜杠“/”作為分割
$crumb_path = $crumb_site.’/’;
for ($x = 1; $x < count($crumb_tree) - 1; $x++) {
$crumb_path .= $crumb_tree[$x].'/';
$crumb_trail .= ' > ‘ .$crumb_labels[$crumb_tree[$x]].’‘;
}
return $crumb_trail;
}
[/code]
保存為 “breadcrumbs.php”到相應目錄,這里方便示例保存到和測試頁面同一目錄下,即 /php/form/pmnp/mysql/ 下。接著創建3個輸入參數并執行函數:
[code=”php”]
include “breadcrumbs.php”;
$crumb_site = “http://localhost”;??//這里在本機測試,如果在另外服務器替換相應域名
$crumb_labels = array(
“php” => “PHP”,
“form” => “Recent Articles”,
“pmnp” => “Beginning PHP and MySQL 5”,
“mysql” => “MYSQL”
);
echo create_crumbs($crumb_site, “Home”, $crumb_labels);
[/code]
將此代碼保存執行即可得到如下面包屑型軌跡:
Home > PHP > Recent Articles > Beginning PHP and MySQL 5 > MYSQL
二、基于數據庫表數據創建面包屑型軌跡
考慮將 URL http://www.example.com/books/1590595521/ 轉換為如下面包屑型軌跡:
Home > IT > Beginning PHP and MySQL5
對于數據庫驅動的網站而言,用數組來處理存貯的動態信息雖然可行,但并不是最方便的方式。下面只是一個簡單的實現,將指定的ISBN號碼查詢出匹配的書名和所屬分類,輸出到導航位置。
以下 categories 表提供了書類別到 books 表中存儲的 書之間的一對多的映射。
[code=”sql”]
create table categories2 (
categoryID? TINYINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(15) NOT NULL );
[/code]
表 books 用于存貯出版商的圖書信息:
[code=”sql”]
create table books (
bookID TINYINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
categoryID TINYINT NOT NULL,
isbn VARCHAR(9) NOT NULL,
author VARCHAR(50) NOT NULL,
title VARCHAR(45) NOT NULL,
description VARCHAR(300) NOT NULL );
[/code]
在books表中插入數據:
[code=”sql”]
insert into books (categoryID,isbn,author,title,description)
values (‘2′,’159059552′,’Kevin’,’Beginning PHP and MySQL5′,’How to learn PHP and MySQ’);
[/code]
創建好數據庫后,現在編寫PHP代碼部分,以上省略了創建數據庫表時提供的數據庫名和用戶,需自行創建并調整PHP代碼連接數據庫部分。
[code=”php”]
function create_crumbs($siteURL, $categoryID, $categoryName, $title) {
$crumb = “Home > $categoryName > $title”;
print $crumb;
}
$siteURL = “Http://localhost”;
mysql_pconnect(“localhost”,”website”,”secret”);
mysql_select_db(“corporate”);
$isbn =”159059552″;
$result = mysql_query(“select b.categoryID,c.name,b.isbn,b.author,b.title,b.description from books b,categories c where b.isbn = $isbn and b.categoryID = c.categoryID”);
$row = mysql_fetch_assoc($result);
$categoryID = $row[“categoryID”];
$categoryName = $row[“name”];
$isbn = $row[“isbn”];
$authorID = $row[“author”];
$title = $row[“title”];
create_crumbs($siteURL, $categoryID, $categoryName, $title);
[/code]
直接在瀏覽器執行這個PHP文件即可得到效果。
向 WordPress 模板添加面包屑型軌跡
由于WordPress 有大量可用的函數,在其模板里實現面包屑型軌跡是一個很簡單的事情。只需要在 “single.php” 需要展示導航提示的位置添加下面代碼即可實現:
[code=”php”]
評論
Name*Email*Website
總結
以上是生活随笔為你收集整理的Php数组面包屑导航,PHP 导航提示(面包屑型轨迹)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java怎么监听多个组件,java we
- 下一篇: php生成高清缩略图,PHP生成缩略图函