Codeigniter: сегменты URI - PullRequest
0 голосов
/ 12 мая 2010

Как мне создать оператор if, говорящий что-то вроде этого?В основном, как вы используете класс URI, чтобы определить, есть ли значение в каком-либо сегменте?

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

Я знаю, что это довольно элементарно, но я не совсем понимаю класс URI ...

1 Ответ

8 голосов
/ 12 мая 2010

Ваш вопрос мне немного неясен, но я постараюсь помочь. Вы задаетесь вопросом, как определить, существует ли определенный сегмент или он содержит определенное значение?

Как вы, вероятно, знаете, вы можете использовать класс URI для доступа к определенным сегментам URI. Используя yoursite.com/blog/article/123 в качестве примера, blog является 1-м сегментом, article является 2-м сегментом и 123 является 3-м сегментом. Вы получаете доступ к каждому, используя $this->uri->segment(n)

Затем вы можете сконструировать операторы, подобные этому:

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

Надеюсь, это поможет! Дайте мне знать, если нет, и я могу уточнить или предоставить дополнительную информацию.

Edit:

Если вам нужно определить, появляется ли конкретная строка в каком-либо сегменте 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):

Эта функция может возвращать логическое значение ЛОЖЬ, но может также вернуть небулево значение, которое оценивается как ЛОЖЬ, например 0 или "". Пожалуйста, прочитайте раздел о логических значениях для более Информация. Используйте оператор === для тестирование возвращаемого значения этого функция.

Я надеюсь, что мое редактирование поможет. Дайте мне знать, если я могу уточнить.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...