Получите помощь, поддержку и профессиональное общение в Клубе CodeIgniter

# CodeIgniter User Guide Version 2.1.3

Search User Guide

# Помощник URL

Файл помощника URL содержит функции, которые помогут в работе с URL-ами.

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

Этот помощник загружается при использовании следующего кода:

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

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

## site_url()

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

Вам рекомендуется использовать эту функци каждый раз, когда нужно сгенерировать локальный URL, что сделает ваш сайт более портативным (независящим от домена).

Опционально функции можно передать сегменты, строкой или массивом. Вот пример использования строки:

`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();`

Эта функция возвращает только site_url, без index_page или url_suffix.

Также как и site_url, вы можете просто передать сегменты массивом или строкой. Вот пример использования строки:

`echo base_url("blog/post/123");`

Пример выше вернет что-то вроде: http://example.com/blog/post/123

Это полезно, так как, в отличие от site_url(), вы моежте передать путь к файлу, например к картинке или к таблице стилей. Например:

`echo base_url("images/icons/edit.png");`

Вернет что-то вроде этого: http://example.com/images/icons/edit.png

## current_url()

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

## 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()

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

## auto_link()

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

`$string = auto_link($string);`

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

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

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

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

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

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

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

## url_title()

Принимает строку на вход, и создает человеко-дружественную строку URL. Это полезно, если вы, к примеру, используете блог, который имеет заголовки в URL. Пример:

`$title = "What's wrong with CSS?";
$url_title = url_title($title);
// Сделает: Whats-wrong-with-CSS`

Второй параметр определяет разделитель слов. По умолчанию используются дефисы.

`$title = "What's wrong with CSS?";
$url_title = url_title($title, '_');
// Сделает: Whats_wrong_with_CSS`

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

`$title = "What's wrong with CSS?";
$url_title = url_title($title, '_', TRUE);
// Сделает: whats_wrong_with_css`

### prep_url()

Эта функция добавит http://, в случае, если оно отсутствует в URL. Передайте строку URL:

`$url = "example.com";
$url = prep_url($url);`

## redirect()

Делает редирект по указанному URI. Если вы указываете полный URL сайта, произойдет переход по указанному адресу. Если вы указываете только сегмент URI, будет сгенерирована локальная ссылка. Функция построит URI, основываясь на данных в конфигурационном файле.

Второй опциональный параметр позволяет вам выбирать между методами «location» и «refresh». Метод «location» быстрее, но на серверах Windows может создавать некоторые проблемы. Третий опциональный параметр позволяет вам послать код ответа HTTP. К примеру, 301 для поисковых движков. По умолчанию код 302. Третий параметр доступен только для метода «location». Примеры:

`if ($logged_in == FALSE)
{
redirect('/login/form/', 'refresh');
}
// с редиректом 301
redirect('/article/13', 'location', 301);`

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

### Поделиться

Переведено в компании Аринт.

# Спасибо!

Вы тоже можете оказать помощь проекту! Как это сделать?

## Помощь и поддержка

Вы можете задать вопросы и получить ответы и советы от гуру CodeIgniter и веб-разработки: вступайте в Клуб CodeIgniter