Spec-Zone.ru › CodeIgniter 3

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, чтобы предотвратить сбор электронного адреса спам-ботами.

END_OF_DOCUMENT_MARKER
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: если вы скрываете заголовок Server HTTP, метод 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API