URL Helper
В файле URL Helper содержатся функции, которые помогают работать с URL-адресами.
Загрузка данного помощника
Этот помощник загружается с помощью следующего кода:
$this->load->helper('url');
Доступные функции
Доступны следующие функции:
-
site_url([$uri = ''[, $protocol = NULL]]) -
Параметры: - $uri (string) – Строка URI
- $protocol (string) – Протокол, например, ‘http’ или ‘https’
Возвращает: URL сайта
Тип возвращаемого значения: string
Возвращает URL-адрес вашего сайта, как указано в файле конфигурации. Файл index.php (или то, что вы установили в качестве index_page в файле конфигурации) будет добавлен к URL, как и любые сегменты URI, которые вы передаёте в функцию, плюс url_suffix, как указано в файле конфигурации.
Рекомендуется использовать эту функцию всякий раз, когда вам нужно сгенерировать локальный URL, чтобы ваши страницы стали более портативными в случае изменения URL.
Сегменты могут быть необязательно переданы в функцию как строка или массив. Вот пример со строкой:
echo site_url('news/local/123');Приведенный выше пример вернёт что-то вроде: http://example.com/index.php/news/local/123
Вот пример с сегментами, переданными в виде массива:
$segments = array('news', 'local', '123'); echo site_url($segments);Эта функция является псевдонимом для
CI_Config::site_url(). Для получения дополнительной информации см. документацию по Библиотеке конфигурации.
-
base_url($uri = '', $protocol = NULL) -
Параметры: - $uri (string) – Строка URI
- $protocol (string) – Протокол, например, ‘http’ или ‘https’
Возвращает: Базовый URL
Тип возвращаемого значения: string
Возвращает базовый 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
Эта функция является псевдонимом для
CI_Config::base_url(). Для получения дополнительной информации см. документацию по Библиотеке конфигурации.
-
current_url() -
Возвращает: Текущий URL Тип возвращаемого значения: string Возвращает полный URL (включая сегменты) текущей просматриваемой страницы.
Примечание
Вызов этой функции эквивалентен выполнению следующего: | | site_url(uri_string());
-
uri_string() -
Возвращает: Строку URI Тип возвращаемого значения: string Возвращает сегменты URI любой страницы, содержащей эту функцию. Например, если ваш URL был следующим:
http://some-site.com/blog/comments/123
Функция вернёт:
blog/comments/123
Эта функция является псевдонимом для
CI_Config::uri_string(). Для получения дополнительной информации см. документацию по Библиотеке конфигурации.
-
index_page() -
Возвращает: Значение ‘index_page’ Тип возвращаемого значения: mixed Возвращает значение index_page вашего сайта, как указано в файле конфигурации. Пример:
echo index_page();
-
anchor($uri = '', $title = '', $attributes = '') -
Параметры: - $uri (string) – Строка URI
- $title (string) – Заголовок ссылки
- $attributes (mixed) – Атрибуты HTML
Возвращает: HTML гиперссылка (тег якоря)
Тип возвращаемого значения: string
Создаёт стандартную HTML-ссылку на якорь на основе локального URL вашего сайта.
Первый параметр может содержать любые сегменты, которые вы хотите добавить к URL. Как и в функции
site_url(), сегменты могут быть строкой или массивом.Примечание
Если вы создаёте ссылки, которые находятся внутри вашего приложения, не включайте базовый URL (http://…). Он будет добавлен автоматически из данных, указанных в вашем файле конфигурации. Включайте только сегменты URI, которые вы хотите добавить к URL.
Второй сегмент – это текст, который вы хотите отобразить в ссылке. Если вы оставите его пустым, будет использован URL.
Третий параметр может содержать список атрибутов, которые вы хотите добавить к ссылке. Атрибуты могут быть простой строкой или ассоциативным массивом.
Вот несколько примеров:
echo anchor('news/local/123', 'My News', 'title="News title"'); // Prints: <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!')); // Prints: <a href="http://example.com/index.php/news/local/123" title="The best news!">My News</a> echo anchor('', 'Click here'); // Prints: <a href="http://example.com">Click Here</a>
-
anchor_popup($uri = '', $title = '', $attributes = FALSE) -
Параметры: - $uri (string) – Строка URI
- $title (string) – Заголовок ссылки
- $attributes (mixed) – Атрибуты HTML
Возвращает: Гиперссылка всплывающего окна
Тип возвращаемого значения: string
Практически идентично функции
anchor(), за исключением того, что она открывает URL в новом окне. Вы можете указать атрибуты JavaScript окна в третьем параметре, чтобы контролировать, как будет открыто окно. Если третий параметр не задан, это просто откроет новое окно с вашими настройками браузера.Вот пример с атрибутами:
$atts = array( 'width' => 800, 'height' => 600, 'scrollbars' => 'yes', 'status' => 'yes', 'resizable' => 'yes', 'screenx' => 0, 'screeny' => 0, 'window_name' => '_blank' ); echo anchor_popup('news/local/123', 'Click Me!', $atts);Примечание
Перечисленные выше атрибуты – это значения по умолчанию функции, поэтому вам нужно задавать только те, которые отличаются от необходимых. Если вы хотите, чтобы функция использовала все свои значения по умолчанию, просто передайте пустой массив в третий параметр: | | echo anchor_popup(‘news/local/123’, ‘Click Me!’, array());
Примечание
window_name – это не атрибут, а аргумент для метода JavaScript
window.open() <http://www.w3schools.com/jsref/met_win_open.asp>, который принимает либо имя окна, либо целевое окно.Примечание
Любой другой атрибут, кроме указанных выше, будет интерпретирован как атрибут HTML для тега якоря.
-
mailto($email, $title = '', $attributes = '') -
Параметры: - $email (string) – Электронный адрес
- $title (string) – Заголовок ссылки
- $attributes (mixed) – Атрибуты HTML
Возвращает: Гиперссылка «отправить электронное письмо»
Тип возвращаемого значения: string
Создаёт стандартную HTML-ссылку для отправки электронного письма. Пример использования:
echo mailto('me@my-site.com', 'Click Here to Contact Me');Как и в таблице
anchor()выше, вы можете задавать атрибуты, используя третий параметр:$attributes = array('title' => 'Mail me'); echo mailto('me@my-site.com', 'Contact Me', $attributes);
-
safe_mailto($email, $title = '', $attributes = '') -
Параметры: - $email (string) – Электронный адрес
- $title (string) – Заголовок ссылки
- $attributes (mixed) – Атрибуты HTML
Возвращает: Безопасная для спама гиперссылка «отправить электронное письмо»
Тип возвращаемого значения: string
Идентично функции
mailto(), за исключением того, что она создаёт замаскированную версию тега mailto, используя порядковые номера, записанные на JavaScript, чтобы предотвратить сбор электронного адреса спам-ботами.
-
auto_link($str, $type = 'both', $popup = FALSE) -
Параметры: - $str (string) – Входная строка
- $type (string) – Тип ссылки (‘email’, ‘url’ или ‘both’)
- $popup (bool) – Создавать ли ссылки в новом окне
Возвращаемое значение: Строка со ссылками
Тип возвращаемого значения: string
Автоматически преобразует URL-адреса и адреса электронной почты, содержащиеся в строке, в ссылки. Пример:
$string = auto_link($string);
Второй параметр определяет, будут ли преобразовываться URL-адреса и адреса электронной почты или только один из них. По умолчанию поведение равно «both», если параметр не указан. Ссылки на электронную почту кодируются как
safe_mailto(), как показано выше.Преобразует только URL-адреса:
$string = auto_link($string, 'url');
Преобразует только адреса электронной почты:
$string = auto_link($string, 'email');
Третий параметр определяет, будут ли ссылки открываться в новом окне. Значение может быть TRUE или FALSE (булево):
$string = auto_link($string, 'both', TRUE);
-
url_title($str, $separator = '-', $lowercase = FALSE) -
Параметры: - $str (string) – Входная строка
- $separator (string) – Разделитель слов
- $lowercase (bool) – Преобразовать ли выходную строку в нижний регистр
Возвращаемое значение: Строка в формате URL
Тип возвращаемого значения: string
Принимает строку в качестве входных данных и создает удобную для человека строку URL. Это полезно, например, если у вас есть блог, в котором вы хотите использовать заголовок своих записей в URL. Пример:
$title = "What's wrong with CSS?"; $url_title = url_title($title); // Produces: Whats-wrong-with-CSS
Второй параметр определяет разделитель слов. По умолчанию используется дефис. Предпочтительные варианты: - (дефис) или _ (подчеркивание)
Пример:
$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($str = '') -
Параметры: - $str (string) – Строка URL
Возвращаемое значение: Строка URL с префиксом протокола
Тип возвращаемого значения: string
Эта функция добавит «http://», если префикс протокола отсутствует в URL.
Передайте строку URL в функцию так:
$url = prep_url('example.com');
-
redirect($uri = '', $method = 'auto', $code = NULL) -
Параметры: - $uri (string) – Строка URI
- $method (string) – Метод переадресации (‘auto’, ‘location’ или ‘refresh’)
- $code (string) – Код HTTP-ответа (обычно 302 или 303)
Тип возвращаемого значения: void
Выполняет переадресацию «заголовка» на указанный URI. Если вы указываете полный URL сайта, эта ссылка будет построена, но для локальных ссылок достаточно указать сегменты URI для контроллера, к которому вы хотите перенаправить, чтобы создать ссылку. Функция будет строить URL на основе значений вашего файла конфигурации.
Необязательный второй параметр позволяет принудительно задать определенный метод переадресации. Доступные методы — auto, location и refresh, причем location быстрее, но менее надежен на серверах IIS. По умолчанию используется auto, который пытается интеллектуально выбрать метод на основе среды сервера.
Необязательный третий параметр позволяет отправить определенный код HTTP-ответа — это можно использовать, например, для создания переадресаций 301 для целей поисковых систем. Код ответа по умолчанию — 302. Третий параметр только доступен для переадресации location, а не refresh. Примеры:
if ($logged_in == FALSE) { redirect('/login/form/'); } // with 301 redirect redirect('/article/13', 'location', 301);Примечание
Для работы этой функции она должна быть использована до вывода чего-либо в браузер, так как она использует заголовки сервера.
Примечание
Для очень тонкого управления заголовками следует использовать метод библиотеки Output Library
set_header().Примечание
Для пользователей IIS: если вы скрываете заголовок
ServerHTTP, метод auto не обнаружит IIS, в этом случае рекомендуется явно использовать метод refresh.Примечание
Когда используется метод location, код состояния HTTP 303 будет автоматически выбран, когда страница в настоящее время обращается через POST и используется HTTP/1.1.
Важно
Эта функция прекратит выполнение скрипта.
© 2014–2020 British Columbia Institute of Technology
Licensed under the MIT License.
https://codeigniter.com/userguide3/helpers/url_helper.html