Помощник 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.