我正在使用codeigniter。如何获取我的网址的最后一部分,如:
www.example.com/uk-en/category/subcategory
参数可以是无限的,也可以只有一个。在我的Controller Home和方法索引中,我只想要url的最后一部分,例如“subcategory”
如果网址是www.example.com/Home/index/uk-en/category那么它正在工作
但我想要的是没有类名“Home”和方法“index”
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Home extends CI_Controller{
public function index($params=[]){
$params=func_get_args();
$last=end($params);
echo $last;
}
}
?>
routes.php
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
$route['(:any)'] = 'Home/index';
$route['default_controller'] = 'Home';
$route['404_override'] = 'error_404/index';
$route['translate_uri_dashes'] = FALSE;
?>
.htaccess
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [QSA,L]
答案 0 :(得分:1)
在你的溃败中使用它
$route['(.*)'] = "Home/index";
这将在索引函数中打印控制器中的所有路径
print_r($this->uri->segment_array());
答案 1 :(得分:0)
您的路线中的问题是首先设置通配符占位符。它总是需要在最后的位置。
路线将按照定义的顺序运行。较高的路线总是优先于较低的路线。
$route['default_controller'] = 'Home';
$route['404_override'] = 'error_404/index';
$route['translate_uri_dashes'] = FALSE;
//some example routes
$route['specific/route'] = 'controller/method';
$route['specific/(:num)'] = 'page/show/$1';
//always put your wildcard route at the end of routes.php file
$route['(:any)'] = 'home/index';