开发者

Codeigniter: URI segments

How do I create an if statement saying something like this? Basically, how do you use the URI class to determine if there is a value in any segment?

$segment = value_of_any_segme开发者_StackOverflownt;
if($segment == 1{
    do stuff
}

I know this is pretty elementary, but I don't totally understand the URI class...


Your question is a little unclear to me, but I'll try to help. Are you wondering how to determine if a particular segment exists or if it contains a specific value?

As you are probably aware, you can use the URI class to access the specific URI segments. Using yoursite.com/blog/article/123 as an example, blog is the 1st segment, article is the 2nd segment, and 123 is the 3rd segment. You access each using $this->uri->segment(n)

You then can construct if statements like this:

// 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
}

Hope that helps! Let me know if not and I can elaborate or provide additional information.

Edit:

If you need to determine if a particular string appears in any segment of the URI, you can do something like this:

// 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
}

A note regarding strpos() (from the PHP documentation):

This function may return Boolean FALSE, but may also return a non-Boolean value which evaluates to FALSE, such as 0 or "". Please read the section on Booleans for more information. Use the === operator for testing the return value of this function.

I hope my edit helps. Let me know if I can elaborate.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜