【问题标题】:Get segment from url CodeIgniter but not first从 url CodeIgniter 获取段,但不是第一个
【发布时间】:2016-12-28 21:15:26
【问题描述】:

我知道我可以像这样从 url 获取所有片段

假设我有这个示例链接

www.example.com/de/products.html

像这样使用 url_helper:

$data['url'] = $this->uri->uri_string();

我会得到这样的价值

de/产品

但我不需要第一段de,只需要products,问题是 我不知道它会有多少段,我只需要删除第一个

是否有可能在 CI 中使用 url helper 忘记第一段?

【问题讨论】:

    标签: codeigniter url codeigniter-3


    【解决方案1】:

    试试这样...

    使用 php 的 explode() 函数将 url 字符串作为数组。然后应用数组的 array_shift() 函数,该函数总是从数组中删除第一个元素。

    代码如下所示

            $data= $this->uri->uri_string();
            $arr=explode('/', $data);
            array_shift($arr);
            //print_r($arr);
    

    然后使用php的implode()方法得到没有第一段的URI。希望它能工作...

    $uri=implode('/',$arr);
    echo $uri;
    

    【讨论】:

    • @Miomir Dancevic 谢谢......可能很简单但很棘手......让我们享受 codeigniter。
    • @HikmatSijapati 已经内置$this->uri->segment_array();Docs.
    【解决方案2】:

    CI 中没有用于忘记第一段的 URL 助手。但是,您可以轻松地进行自定义,并将@Hikmat 的答案放在 Core 文件夹中的 application/helpers/MY_url_helper.php 中。

    例如

    function my_forget_first_segment() {
        $data= $this->uri->uri_string();
            $arr=explode('/', $data);
            array_shift($arr);
            $uri=implode('/',$arr);
            return $uri;
    }
    

    在编辑答案之前。

    You need to try this 
    
    $second_segment = $this->uri->segment(2);
    

    来自 Codeigniter 文档 -

    $this->uri->segment(n);
    

    允许您检索特定段。其中 n 是您要检索的段号。段从左到右编号。例如,如果您的完整 URL 是这样的:

    http://example.com/index.php/news/local/metro/crime_is_up

    段号是这样的:

    1. news
    2. local
    3. metro
    4. crime_is_up
    

    可选的第二个参数默认为 NULL,并允许您在请求的 URI 段丢失时设置此方法的返回值。例如,这将告诉方法在失败时返回数字零:

    $product_id = $this->uri->segment(3, 0);
    

    【讨论】:

    • @Miomir Dancevic 我认为我的回答解决了您的问题。如果没有评论,请先查看
    【解决方案3】:

    示例:

    <?php  
          $data=$this->uri->segment(2);
          $val=explode('.', $data);
          echo $val[0]; 
    ?>
    

    【讨论】:

      猜你喜欢
      • 2015-04-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-17
      • 2012-03-28
      • 1970-01-01
      • 1970-01-01
      • 2013-07-18
      相关资源
      最近更新 更多