在flea/filter/ 目錄下增加乙個檔案,叫做namespaceuri.php,裡面內容如下:
<?php
/** * 增加命名空間支援 -- 將命名空間掛接到控制器名稱之前
*/function ___namespace_urlrewrite_filter()
$firsttime = false;
foreach ($_ as $k=>$v)
$pathinfo = !empty($_server['path_info']) ?
$_server['path_info'] :
(!empty($_server['orig_path_info']) ? $_server['orig_path_info'] : '');
$parts = explode('/', substr($pathinfo, 1));
// 初始化變數
$namespace = $defaultnamespace ;
$controllername = $actionname = null ;
// 如果是重寫的url,pathinfo 則有值,標準uri的話,pathinfo取不到值
if (isset($parts[0]) && strlen($parts[0]))
}if ($namespace == $defaultnamespace)else
if ($style == '/')
}} else }}
}// 設定最後的命名空間/控制器/action的值
if (isset($_get[$namespaceaccessor]) && strlen($_get[$namespaceaccessor]))
$_get[$namespaceaccessor] = $namespace ;
if (isset($_get[$controlleraccessor]) && strlen($_get[$controlleraccessor]))
$prefix = strlen($namespaces[$namespace]) ? "_" : '' ;
$_get[$controlleraccessor] = $prefix . ucwords($controllername) ;
if (isset($_get[$actionaccessor]) && strlen($_get[$actionaccessor]))
// 將 $_get 合併到 $_request,
// 有時需要使用 $_request 統一處理 url 中的 id=? 這樣的引數
$_request = array_merge($_request, $_get);
}/**
* 增加命名空間支援 -- 將命名空間掛接到控制器名稱之前
*/function ___namespace_urlstandard_filter()
$firsttime = false;
foreach ($_ as $k=>$v)
// 初始化變數
$namespace = $defaultnamespace ;
$controllername = $actionname = null ;
// 設定最後的命名空間/控制器/action的值
if (isset($_get[$namespaceaccessor]) && strlen($_get[$namespaceaccessor]))
$_get[$namespaceaccessor] = $namespace ;
if (isset($_get[$controlleraccessor]) && strlen($_get[$controlleraccessor]))
$prefix = strlen($namespaces[$namespace]) ? "_" : '' ;
$_get[$controlleraccessor] = $prefix . ucwords($controllername) ;
if (isset($_get[$actionaccessor]) && strlen($_get[$actionaccessor]))
// 將 $_get 合併到 $_request,
// 有時需要使用 $_request 統一處理 url 中的 id=? 這樣的引數
$_request = array_merge($_request, $_get);
}/**
* 增加命名空間支援 -- 將控制器名稱轉化成 命名空間/控制器名稱
* * @return string
*/function ___namespacetouri($controllername=null,$isurlrewrite=true)
*/i",$controllername))*/i",'',$controllername);
break ;
}} }
if ($isurlrewrite)else
} ___namespace_urlrewrite_filter() ;
}else
修改 flea.php 檔案中的幾行:
找到: 並注釋掉
// 根據 url 模式設定,決定是否要載入 url 分析過濾器
// require(flea_dir . '/filter/uri.php');
// }
增加一行: require(flea_dir . '/filter/namespaceuri.php');
修改url方法裡面的**:
找到 : // pathinfo 和 rewrite 模式 注釋處,在下面繼續找到 $url .= '/' . rawurlencode($controllername);
將其注釋掉,加上一行 $url .= ___namespacetouri($controllername,true);
找到 : // 標準模式 注釋處,在下面繼續找到:
if ($controllername != $defaultcontroller && !is_null($controllername)) {
// $url .= $parajoin . rawurlencode($controllername); @注釋掉這裡的**
// 修改為:
$url .= $parajoin . ___namespacetouri($controllername,false);
此時全部修改完成,在 專案的配置檔案中加入:
'namespaces' => array(
'blog' => 'blog' ,
'default' => '' ,
) ,
從瀏覽器訪問: /blog/news/list/page/3/cat/internet
則會 自動定位到 url('blog_news','list',array('page'=>3,'cat'=>'internet'))
視窗置頂 取消置頂工具
include pragma comment linker,subsystem windows int winapi winmain hinstance hinstance,hinstance hprevinstance,lpstr lpcmdline,int icmdshow setwindowp...
FleaPHP的安全設定方法
前提條件 虛擬機器,無法將fleaphp資料夾放在http無法訪問的路徑,無法修改qmvmfgapache和php的配置檔案。fleaphp使用預設配置 方法 1。controller資料夾 放在根目錄外 此種辦法只能適合自己有伺服器 2。在controller的檔案裡,盡量不要顯式輸出如echo程...
php置頂文章,zblogphp呼叫置頂文章的教程
中的 10 則標識呼叫的文章數量。這個問題就完美的解決了,但是客戶又問,我能不能指定我想展示的文章呢?然後新一輪的折騰又開始了,起初先看見了天興的部落格,有這個教程,但是這個指定一篇文章,這段 就是zblogphp呼叫指定文章的 如下 post getpost 1 這裡的1是指定的文章id 但是只能...