CodeIgniter User Guide Version 2.0.0


Помощник URL

Помощник URL содержит функции, которые помогают работать с URL.

Загрузка этого помощника

$this->load->helper('url');

Доступны следующие функции:

site_url()

Возвращает URL сайта, указанный в конфигурационом файле. Файл index.php (или другой, который является вашей index_page в конфигурационном файле) будет добавлен к URL, а также любые сегменты URI, которые вы передадите функции.

Рекомендуется использовать эту функцию постоянно, для того, чтобы сделать приложения более портативными.

Сегменты могут быть переданы строкой или массивом:

echo site_url("news/local/123");

Пример выше вернет: http://example.com/index.php/news/local/123

Вот пример передачи сегментов в массиве:

$segments = array('news', 'local', '123');

echo site_url($segments);

base_url()

Вернет основной URL сайта, как указано в вашем конфигурационном файле. Пример:

echo base_url();

current_url()

Вернет полный URL (включая сегменты) текущей страницы .

uri_string()

Вернет сегменты URI текущей страницы. Например, для URL:

http://some-site.com/blog/comments/123

Функция вернет:

/blog/comments/123

index_page()

Возвращает "индексную" страницу, как указано в конфигурационном файле. Пример:

echo index_page();

anchor()

Создает стандартную ссылку HTML, основываясь на URL сайта:

<a href="http://example.com">Click Here</a>

Тег принимает три опциональных параметра:

anchor(uri segments, text, attributes)

Первый параметр содержит любые сегменты, которые вы хотите добавить к URL. Также, как и для функции site_url(), вы можете передать их строкой или массивом.

Примечание:  Если вы делаете внутрение ссылки в вашем приложении, не включайте основной URL (http://...). Он будет добавлен автоматически на основании информации, указанной в конфигурационном файле. Включайте только сегменты URI, которые вы хотите добавить к URL.

Второй сегмент — это текст, который должен быть вставлен в ссылку. Если оставите пустым, будет использован URL.

Третий параметр может содержать список аттрибутов, которые вы хотите добавить в ссылку. Можно передавать строку или ассоциативный массив.

Вот некоторые примеры:

echo anchor('news/local/123', 'My News', 'title="News title"');

Сделает: <a href="http://example.com/index.php/news/local/123" title="News title">My News</a>

echo anchor('news/local/123', 'My News', array('title' => 'The best news!'));

Сделает: <a href="http://example.com/index.php/news/local/123" title="The best news!">My News</a>

anchor_popup()

Идентична функции выше anchor(), за исключением того, что URL будет открыт в новом окне. Вы можете указать аттрибуты окна JavaScript в третьем параметре, чтобы контролировать открываемое окно. Если третий параметр не установлен, будет открыто обычное новое окно. Вот пример с аттрибутами:

$atts = array(
              'width'      => '800',
              'height'     => '600',
              'scrollbars' => 'yes',
              'status'     => 'yes',
              'resizable'  => 'yes',
              'screenx'    => '0',
              'screeny'    => '0'
            );

echo anchor_popup('news/local/123', 'Click Me!', $atts);

Примечание: Аттрибуты выше устанавливаются по умолчанию, если вы передадите пустой массив в третьем параметре:

echo anchor_popup('news/local/123', 'Click Me!', array());

mailto()

Создает стандартную ссылку электронной почты HTML. Пример использования:

echo mailto('me@my-site.com', 'Click Here to Contact Me');

Также как и anchor() выше, вы можете передавать аттрибуты в третьем параметре.

safe_mailto()

Идентично функции выше, за исключением того, что она записывает обсфуцированную версию адреса электронной почты, чтобы осложнить работу спамботов.

auto_link()

Автоматически превращает URL и адреса электронной почты, содержащиеся в строке, в ссылки. Пример:

$string = auto_link($string);

Второй параметр определяет, конвертировать ли только URL, или только адреса электронной почты. По умолчанию второй параметр не указан. Адреса электронной почты конвертируются safe_mailto(), как показано выше.

Конвертировать только URL:

$string = auto_link($string, 'url');

Конвертировать только адреса электронной почты:

$string = auto_link($string, 'email');

Третий параметр определяет, должны ли ссылки открываться в новом окне. Значения TRUE или FALSE:

$string = auto_link($string, 'both', TRUE);

url_title()

Принимает строку на вход и создает человекочитаемую строку URL. Пример:

$title = "What's wrong with CSS?";

$url_title = url_title($title);

// Делает: Whats-wrong-with-CSS

Второй параметр определяет разделитель. По умолчанию используются дефисы. Опции: dash (дефис) или underscore (знак подчеркивания):

$title = "What's wrong with CSS?";

$url_title = url_title($title, 'underscore');

// Produces: Whats_wrong_with_CSS

Третий параметр определяет, следует ли преобразовывать строку в нижний регистр. По умолчанию — нет. Доступные опции TRUE и FALSE:

$title = "What's wrong with CSS?";

$url_title = url_title($title, 'underscore', TRUE);

// Produces: whats_wrong_with_css

prep_url()

Функция добавит http://, если он отсутствует:

$url = "example.com";

$url = prep_url($url);

redirect()

Отправляет заголовок для редиректа по указанному пути. Если вы указали неполный URL, он будет дополнен значением, указанным в конфигурации.

Второй опциональный параметр позволяет указывать метод "location" или "refresh". Location быстрее, но на серверах Windows могут быть некоторые проблемы. Третий опциональный параметр позволяет вам отправлять ответы HTTP Response Code, к примеру, это может быть использовано для создания редиректов 301 для поисковиков. По умолчанию код ответа 302. Третий параметр доступен только в режиме location, но не для refresh. Примеры:

if ($logged_in == FALSE)
{
     redirect('/login/form/', 'refresh');
}

// with 301 redirect
redirect('/article/13', 'location', 301);

Примечание: Для использования этой функции необходимо убедиться, что до отправки заголовков не происходило никакого вывода.
Примечание: Для очень тонкого управления заголовками используйте функцию set_header() класса Output.