Функция URI Codeigniter url_title (), как использовать - PullRequest
0 голосов
/ 22 сентября 2011

Я использую платформу CodeIgniter и не понимаю, как удалить% 20 ​​из моих URL-адресов. Ниже приведен пример моего кода. Контроллер - блог метод - шоу атрибут - это мой блог

public function show($blog= null)
    {
    // my attempt to set the uri segment
    $blogName = $this->uri->segment(3, url_title($blog));
    ... //other code
}

это не работает, я в замешательстве, когда я реализую функцию url_title ('это мой блог'), чтобы при загрузке страницы показывать:

/ блог / показать / это-это-мой-блог

мне нужно что-то делать в файле config / rout.php?

спасибо!

РЕДАКТИРОВАТЬ:

Хорошо, я обнаружил, что url_title () выводит this20is20my20blog, поэтому у меня теперь есть:

      $blogUrl = str_replace("%20", "-", $blog);
    $this->uri->segment(3, $blogUrl);

но он по-прежнему возвращает URL с% 20

Ответы [ 2 ]

3 голосов
/ 23 сентября 2011

Вам просто нужно использовать встроенную функцию php urldecode для удаления любых символов, которые закодированы в URL. Пробелы в URL кодируются в %20, поэтому вместо выполнения str_replace просто попробуйте

public function show($blog= null)
{
    // i'm not sure what url_title does so you might have to tweak this a little
    $blogName = $this->uri->segment(3, urldecode(url_title($blog)));
}

http://php.net/manual/en/function.urldecode.php

1 голос
/ 22 сентября 2011

Попробуйте повторить url_title() непосредственно перед тем, как набрать $this->uri->segment();, чтобы убедиться, что он возвращается правильно.

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