【问题标题】:Codeigniter: Getting a uri string without the first segmentCodeigniter:获取没有第一段的uri字符串
【发布时间】:2015-03-07 01:01:35
【问题描述】:

我在 Codeigniter 中有一些代码,其中我在 URI 的第一段中有语言代码,我想知道如何在没有第一段的情况下获取 URI 字符串,而与 URI 可能具有的段数无关。

示例: 有这个网址:

http://example.com/en/seg1/seg2

这个$this->uri->uri_string() 将导致en/seg1/seg2

但我想要的只是seg1/seg2/etc..

我尝试使用for 循环来获取除第一个以外的所有段,但它只输出 0,如:

for ($i=2; $i <= $numsegments; $i++) { $string += $this->uri->segment($i); }

我没有选择。 我感谢您的帮助。 谢谢。

【问题讨论】:

    标签: codeigniter uri segment


    【解决方案1】:

    您可以使用 str_replace 替换“en/”

    $string=str_replace("","en/",$this->uri->segment($i));
    

    更新

    $pos= strpos('/',$this->uri->segment($i)); //returns position of your first /
    $string = substr($this->uri->segment($i),$pos+1);
    

    【讨论】:

    • 不可能,因为在我的例子中,第一段是语言代码,它也可以是任何东西,所以硬编码不是一种选择。
    • 语言代码可以是什么?听起来不太安全。肯定有一个期望值列表吗?
    • @Mike Miller 是的,我有一个语言列表和要检查的代码。
    • 因此您可以使用作为数组传入的接受语言代码列表进行字符串替换。如果 str_replace 没有找到任何内容,则表明您使用了不可靠的语言代码。
    猜你喜欢
    • 2011-09-17
    • 1970-01-01
    • 2014-10-21
    • 1970-01-01
    • 2010-11-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-02
    相关资源
    最近更新 更多