Codeigniter:URI段

时间:2010-05-12 15:36:01

标签: codeigniter

如何创建if语句,说出这样的话? 基本上,如何使用URI类来确定任何段中是否存在值?

$segment = value_of_any_segment;
if($segment == 1{
    do stuff
}

我知道这是非常基础的,但我并不完全理解URI类......

1 个答案:

答案 0 :(得分:8)

我的问题有点不清楚,但我会尽力帮忙。您是否想知道如何确定特定段是否存在或者是否包含特定值?

您可能知道,您可以使用URI class访问特定的URI细分。以yoursite.com/blog/article/123为例,blog是第1段,article是第2段,123是第3段。您可以使用$this->uri->segment(n)

访问每个

然后您可以构造if语句:

// if segment 2 exists ("articles" in the above example), do stuff
if ($this->uri->segment(2)) {
    // do stuff
}

// if segment 3 ("123" in the above example) is equal to some value, do stuff
if ($this->uri->segment(3) == $myValue) {
    // do stuff
}

希望有所帮助!如果没有,请告诉我,我可以详细说明或提供更多信息。

修改

如果您需要确定特定字符串是否出现在URI的任何段,您可以执行以下操作:

// get the entire URI (using our example above, this is "/blog/article/123")
$myURI = $this->uri->uri_string()

// the string we want to check the URI for
$myString = "article";    

// use strpos() to search the entire URI for $myString
// also, notice we're using the "!==" operator here; see note below
if (strpos($myURI, $myString) !== FALSE) {
    // "article" exists in the URI
} else {
    // "article" does not exist in the URI
}

关于strpos()的说明(来自PHP文档):

  

此函数可能返回布尔值   FALSE,但也可能返回   非布尔值,其值为   FALSE,例如0或“”。请阅读   关于布尔人的部分了解更多   信息。使用===运算符   测试这个的返回值   功能

我希望我的编辑有所帮助。如果我能详细说明,请告诉我。