Хелпер URL
Хелпер URL содержит функции, помогающие работать с URL.
Загрузка хелпера
Для загрузки хелпера используется следующий код:
$this->load->helper('url');
Доступны следующие функции:
site_url()
Возвращает URL вашего сайта, указанный в файле конфигурации. Файл index.php (или тот, который вы выставили в index_page в файле конфигурации) будет добавлен к URL также, как и любые URI сегменты, которые вы передаете в функцию.
Данная функция рекомендуется к использованию в том случае, если необходимо сгенерировать локальный URL для улучшения переносимости страниц в процессе изменения URL.
Сегменты могут быть переданы в функцию либо как строка, либо как массив. Пример строки:
echo site_url("news/local/123");
Приведенный в примере код выведет нечто вроде: http://www.your-site.com/index.php/news/local/123
Пример передачи сегментов массивом:
$segments = array('news', 'local', '123');
echo site_url($segments);
base_url()
Возвращает корневой для сайта URL, указанный в файле конфигурации. Пример:
echo base_url();
index_page()
Возвращает адрес индексной страницы сайта, указанной в файле конфигурации. Пример:
echo index_page();
anchor()
Создаёт стандартную HTML–ссылку на основе локального URL сайта:
<a href="http://www.your-site.com">Щёлк меня!</a>
Тэгу можно задать три необязательных параметра:
anchor(uri segments, text, attributes)
Первый параметр может содержать любые сегменты, которые вы хотите добавить к URL. Также, как и в функции site_url(), описанной выше, сегменты можно указать строкой или массивом.
Примечание: Если вы создаете ссылки, являющиеся для вашего приложения внутренними, не указывайте базовый адрес (http://...). Он будет считан из файла конфигурации и добавлен автоматически. Включайте только сегменты URI, которые вы хотите добавить к URL.
Второй аргумент — текст, который вы хотите отображать. Если его оставить пустым, будет использован URL ссылки.
Третий параметр может содержать список атрибутов, которые вы хотите добавить к ссылке. Можно указать их строкой, либо при помощи ассоциативного массива.
Пара примеров:
echo anchor('news/local/123', 'Мои новости');
Выведет: <a href="http://www.your-site.com/index.php/news/local/123" title="Мои новости">Мои новости</a>
echo anchor('news/local/123', 'Мои новости', array('title' => 'Самые лучшие новости!'));
Выведет: <a href="http://www.your-site.com/index.php/news/local/123" title="Самые лучшие новости!">Мои новости</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, 'Щёлк меня!', $atts);
Примечание: Приведённые атрибуты являются атрибутами по умолчанию для данной функции, поэтому вам необходимо переопределить только те, которые от них отличаются. Если вы хотите, чтобы использовались значения по умолчанию — передайте в функицю пустой массив третьим параметром:
echo anchor_popup('news/local/123', 'Щёлк меня!', array());
mailto()
Создает стандартную почтовую HTML–ссылку. Пример использования:
echo mailto('me@my-site.com', 'Нажми на меня для связь со мной!');
Также, как и в функции anchor() вы можете задать атрибуты, используя третий параметр.
safe_mailto()
Идентична предыдущей функции за исключением того, что почтовый адрес выводится в обфусцированном виде с использованием порядковых номеров символов, которые герерируются при помощи JavaScript. Таким образом адрес скрывается от спам–ботов.
auto_link()
Автоматически преобразует в ссылки адреса URL и email, содержащиеся в тексте. Пример:
$string = auto_link($string);
Второй параметр определяет, будут ли определяться оба адреса: URL и email или же только один из них. Если параметр не указан – определяются оба.
Определяет и преобразует только URL:
$string = auto_link($string, 'url');
Определяет и преобразует только Email:
$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
Второй параметр задаёт разделитель между словами. По–умолчанию используются минусы. Возможные варианты: dash(минус), underscore(подчёркивание):
$title = "What's wrong with CSS?";
$url_title = url_title($title, 'underscore');
// Получим: whats_wrong_with_css
prep_url()
Данная функция добавляет http:// в том случае, если его в URL нет. Передавайте функции URL, похожий на этот:
$url = "www.example.com";
$url = prep_url($url);
redirect()
Реализует перенаправление к локальному URI с помощью заголовков. Также, как и все остальные функции данного хелпера, данная функция производит перенаправление к локальному URL сайта. Вам не нужно указывать полный URL сайта. Вместо него используются сегменты URI контроллера, к которому вы хотите обратиться. Функция создаёт URL на основе значений, указанных в файле конфигурации.
Второй параметр позволяет вам выбрать между методом "location" (по–умолчанию) и методом "refresh". Метод location быстрее, но он иногда вызывает проблемы на серверах Windows. Пример:
if ($logged_in == FALSE)
{
redirect('/login/form/', 'refresh');
}
Примечание: Для корректной работы данной функции она должна быть использована до любого вывода в браузер так как она использует заголовки сервера.