如何在codeigniter中使用current_url生成新的URL

时间:2014-07-18 14:54:28

标签: php codeigniter codeigniter-url codeigniter-routing codeigniter-helpers

我正在尝试在codeigniter中使用current_url()函数,但不确定如何操作此数据。我知道我可以回应current_url()但是如何获取每个段并用于生成新的URL?

我正在尝试获取当前页面的部分并用于生成新的URL并添加新的可变数据。

我从未使用过current_url();以前,所以不知道该怎么做。让我们说我的用户在过滤器页面上,并有2个变量来过滤他们的结果(邻域和类别)。如果用户点击一个邻域,我将如何构建超链接以拉出该类别的当前url变量,然后为邻域插入变量?

我的网址如下: mydomain.com/ny/find/$neighborhood/$category

   Breakdown:
   ny = controller
   find = function
   param1 = $neighborhood
   param2 = $category

非常感谢任何帮助......

3 个答案:

答案 0 :(得分:0)

您可以通过以下方式细分您的网址:

For ny: echo $this->uri->segment(1);
For find: echo $this->uri->segment(2);
For param1: echo $this->uri->segment(3);
For param2: echo $this->uri->segment(4);

答案 1 :(得分:0)

<?php //check if there is a value in uri segment 3 (param1)

if($this->uri->segment(3)){ 

//if there is a value there then include it in the link ?>
     <a href="controller/function/<?=$this->uri->segment(3)?>/link">Link text</a>

<?php //otherwise just go to the link for param1

}else{ ?>

   <a href="controller/function/link">Link text</a>

<?php } ?>

这应该可行,具体取决于您可能需要调整链接以及else语句中的逻辑所需的确切逻辑。根据您想要链接的方式,如果用户位于包含4个网址段的网页上,您可能还需要添加elseif($this->uri->segment(4))并使用不同的逻辑。

答案 2 :(得分:0)

current_url()返回加载的实际页面的字符串。您可以使用细分创建任何所需的网址。 假设您有这个当前网址:

mydomain.com/ny/find/$neighborhood/$category

如果您想在此网址中添加内容并创建指向该用户的链接,则可以创建一个字符串:

$url = base_url().$this->uri->segment(1).'/'.$this->uri->segment(2).'/newParamYouAdd/'.$this->uri->segment(4);

然后:

<a href="<?php echo $url; ?>">New url</a>

请告诉我这是否是你想要的。