淘先锋技术网

首页 1 2 3 4 5 6 7
本文将着重介绍PHP中的$this->uri属性,这是一个非常重要的属性,主要用于获取当前请求的URI。
比如,我们可以使用$this->uri属性来获取当前页面的URL地址,或者在CI框架中,使用它来获取当前控制器和方法名称等信息。
下面,我们来举几个例子来更好地理解它的用法。
假设我们有以下路由规则:
$route['default_controller'] = 'Welcome';
$route['about'] = 'Welcome/about';
$route['contact'] = 'Welcome/contact';
那么,在Welcome控制器中我们可以使用以下代码来获取当前URI:
class Welcome extends CI_Controller {
public function index() {
// 获取默认URI,即 http://www.example.com/
echo $this->uri->uri_string(); // 输出: ''
}
public function about() {
// 获取 about URI,即 http://www.example.com/about
echo $this->uri->uri_string(); // 输出: 'about'
}
public function contact() {
// 获取 contact URI,即 http://www.example.com/contact
echo $this->uri->uri_string(); // 输出: 'contact'
}
}

从上面的代码可以看出,使用$this->uri->uri_string()方法可以轻松地获取当前控制器和方法名称,甚至是路由规则中定义的任何URI。
但是,如果我们需要获取更具体的信息,比如URI中每个路径段的值,该怎么做呢?
恰好,在CI框架中,还有一个$this->uri->segment()方法,可以帮助我们获取URI中的每个路径段的值。
以下是一个示例代码:
class Welcome extends CI_Controller {
public function index() {
// 获取URI中的第一个路径段,即 http://www.example.com/segment1
echo $this->uri->segment(1); // 输出: 'segment1'
// 获取URI中的第二个路径段,即 http://www.example.com/segment1/segment2
echo $this->uri->segment(2); // 输出: 'segment2'
}
}

需要注意的是,如果URI中的某个路径段没有被定义,那么$this->uri->segment()方法将会返回FALSE。
综上所述,$this->uri属性是一个非常有用的工具,可以帮助我们轻松获取当前请求的URI。无论是在构建路由规则、生成URL地址、或者在控制器中获取URI路径段的值,都可以使用这个属性来实现。如果你是一个PHP开发者或者使用CI框架,那么一定要熟悉并掌握这个属性的用法。