① php 如何通過url參數來訪問類,類似於struts2的action調用。
用這種方式,最好的辦法是寫一個統一的入口文件來處理請求參數
// 常量-- 你的網站action路徑
AC_ROOT = '../'
// 處理類
$action = $_REQUEST['action'] ? $_REQUEST['action'] : 'indexAction';
// 處理方法
$method =$_REQUEST['method'] ? $_REQUEST['method']: 'index';
// 查看類是否存在
$actoinfile = AC_ROOT . $action . '.php';
if(file_exists($actoinfile))
{
// 如果存在
require_once($actoinfile);
// 獲取此類的對象
$obj = new $action ();
// 查看處理函數是否存在
if (!method_exists($obj , $method)) {
// 方法不存在返回錯誤
}
// 進入處理流程
$obj->{$method}();
} else {
// 類不存在 返回錯誤
}
建議: 你可以看看 Thinkphp 等框架 的入口處理方法, 對你應該很有幫助.
② php在提執行一個 $action之後如何返回原來的url
比如說你從test.php跳轉到~/demo.php?action=xxx,順便POST一個變數過來,刷新的時候文件開頭判斷這個變數存在不,不存在跳到原始url
③ php如何通過url調用php文件中的方法
題主所描述的這種形式,是MVC設計模式的典型應用。
通過使用PSR4來實現自動載入,可以通過處理路由來實現
//處理路由的方法
staticpublicfunctionroute()
{
//獲取的模塊
$_GET['m']=isset($_GET['m'])?$_GET['m']:'Index';
//獲取行為動作action又叫方法
$_GET['a']=isset($_GET['a'])?$_GET['a']:'index';
$controller='Controller\'.$_GET['m'].'Controller';
//echo$controller;
$c=new$controller();
//$c->$_GET['a']();
call_user_func(array($c,$_GET['a']));
}
最終可實現以下形式:
④ php url 重復參數如何處理,像這樣的url http://localhost/ds.phpaction=4&id=7&id=8&id=7
你可以使用 $_SERVER["QUERY_STRING"] 獲取整個query_string,然後自己寫個簡單的代碼來解析,類似於
<?php
$arr_kev=explode('&',$_SERVER['QUERY_STRING']);
$get=array();
foreach($arr_kevas$kev)
{
list($key,$val)=explode('=',$kev);
$get[$key][]=$val;
}
?>