Spec-Zone.ru › CodeIgniter 4

URL Помощник

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

  • Загрузка этого Помощника
  • Доступные Функции

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

Этот помощник автоматически загружается фреймворком при каждом запросе.

Доступные Функции

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

site_url([$uri = ''[, $protocol = null[, $altConfig = null]]])
Параметры:
  • $uri (смешанный) – строка URI или массив сегментов URI
  • $protocol (строка) – Протокол, например, ‘http’ или ‘https’
  • $altConfig (\Config\App) – Альтернативная конфигурация для использования
Возвращает:

Адрес сайта

Тип возвращаемого значения:

строка

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

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

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

echo site_url('news/local/123');

Приведенный выше пример вернет что-то вроде: http://example.com/index.php/news/local/123

Вот пример сегментов, переданных как массив:

$segments = ['news', 'local', '123'];
echo site_url($segments);

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

base_url([$uri = ''[, $protocol = null]])
Параметры:
  • $uri (смешанный) – строка URI или массив сегментов URI
  • $protocol (строка) – Протокол, например, ‘http’ или ‘https’
Возвращает:

Базовый URL

Тип возвращаемого значения:

строка

Возвращает базовый URL вашего сайта, как указано в вашем файле конфигурации. Пример:

echo base_url();

Эта функция возвращает то же самое, что и site_url(), без добавления indexPage.

Также, как и 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([$returnObject = false[, $request = null]])
Параметры:
  • $returnObject (булево) – Истинно, если вы хотите получить экземпляр URI, а не строку.
  • $request (IncomingRequest|null) – Альтернативный запрос для использования при обнаружении пути; полезно для тестирования.
Возвращает:

Текущий URL

Тип возвращаемого значения:

строка|\CodeIgniter\HTTP\URI

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

Примечание

Вызов этой функции эквивалентен выполнению следующего:

site_url(uri_string());

Важно

До версии 4.1.2 в этой функции была ошибка, из-за которой она игнорировала конфигурацию на App::$indexPage.

previous_url([$returnObject = false])
Параметры:
  • $returnObject (булево) – Истинно, если вы хотите получить экземпляр URI вместо строки.
Возвращает:

URL-адрес, на котором пользователь был ранее

Тип возвращаемого значения:

строка|смешанный|\CodeIgniter\HTTP\URI

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

Из-за проблем с безопасностью, связанных с неоправданным доверием переменной HTTP_REFERER, CodeIgniter будет хранить ранее посещенные страницы в сессии, если она доступна. Это гарантирует, что мы всегда используем известный и надежный источник. Если сессия не загружена или по другим причинам недоступна, то будет использована очищенная версия HTTP_REFERER.

uri_string([$relative = false])
Параметры:
  • $relative (булево) – Истинно, если вы хотите получить строку относительно baseURL
Возвращает:

Строка URI

Тип возвращаемого значения:

строка

Возвращает часть пути текущего URL-адреса. Например, если ваш URL-адрес был таким:

http://some-site.com/blog/comments/123

Функция вернёт:

/blog/comments/123

Или с необязательным параметром относительности:

app.baseURL = http://some-site.com/subfolder/

uri_string(); // "/subfolder/blog/comments/123"
uri_string(true); // "blog/comments/123"
index_page([$altConfig = null])
Параметры:
  • $altConfig (\Config\App) – Альтернативная конфигурация для использования
Возвращает:

значение ‘index_page’

Тип возвращаемого значения:

строка

Возвращает значение indexPage вашего сайта, как указано в файле конфигурации. Пример:

echo index_page();

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

anchor([$uri = ''[, $title = ''[, $attributes = ''[, $altConfig = null]]]])
Параметры:
  • $uri (смешанный) – строка URI или массив сегментов URI
  • $title (строка) – заголовок ссылки
  • $attributes (смешанный) – атрибуты HTML
  • $altConfig (\Config\App) – Альтернативная конфигурация для использования
Возвращает:

HTML гиперссылка (тег якоря)

Тип возвращаемого значения:

строка

Создаёт стандартную HTML ссылку якоря на основе локального адреса вашего сайта.

Первый параметр может содержать любые сегменты, которые вы хотите добавить к 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', ['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/index.php">Click here</a>

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

Примечание

Атрибуты, переданные в функцию anchor, автоматически экранируются для защиты от атак XSS.

anchor_popup([$uri = ''[, $title = ''[, $attributes = false[, $altConfig = null]]]])
Параметры:
  • $uri (string) – Строка URI
  • $title (string) – Заголовок якоря
  • $attributes (mixed) – Атрибуты HTML
  • $altConfig (\Config\App) – Альтернативная конфигурация для использования
Возвращаемое значение:

Гиперссылка всплывающего окна

Тип возвращаемого значения:

string

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

Вот пример с атрибутами:

$atts = [
    '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!', []);

Примечание

window_name на самом деле не является атрибутом, а аргументом метода JavaScript window.open(), который принимает либо имя окна, либо целевое окно.

Примечание

Любой другой атрибут, кроме перечисленных выше, будет интерпретирован как атрибут HTML тега якоря.

Примечание

Атрибуты, передаваемые в функцию anchor_popup, автоматически экранируются для защиты от атак XSS.

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 = ['title' => 'Mail me'];
echo mailto('me@my-site.com', 'Contact Me', $attributes);

Примечание

Атрибуты, передаваемые в функцию mailto, автоматически экранируются для защиты от атак XSS.

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-адреса и адреса электронной почты или только один из них. По умолчанию поведение включает оба, если параметр не указан. Ссылки на электронную почту кодируются как safe_mailto(), как показано выше.

Преобразует только URL-адреса:

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

Преобразует только адреса электронной почты:

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

Третий параметр определяет, будут ли ссылки отображаться в новом окне. Значение может быть true или false (булево):

$string = auto_link($string, 'both', true);

Примечание

Распознаются только URL-адреса, начинающиеся с «www.» или «://».

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, '_');
// Produces: Whats_wrong_with_CSS

Третий параметр определяет, будет ли принудительно преобразовываться строка в нижний регистр. По умолчанию нет. Варианты — булевы значения true/false.

Пример:

$title     = "What's wrong with CSS?";
$url_title = url_title($title, '-', true);
// Produces: whats-wrong-with-css
mb_url_title($str[, $separator = '-'[, $lowercase = false]])
Параметры:
  • $str (string) – Входная строка
  • $separator (string) – Разделитель слов (обычно ‘-‘ или ‘_’)
  • $lowercase (bool) – Преобразовать ли выходную строку в нижний регистр
Возвращаемое значение:

Строка в формате URL

Тип возвращаемого значения:

string

Эта функция работает так же, как url_title(), но автоматически преобразует все символы с диакритическими знаками.

prep_url([$str = ''[, $secure = false]])
Параметры:
  • $str (string) – Строка URL
  • $secure (boolean) – true для https://
Возвращаемое значение:

Строка URL с префиксом протокола

Тип возвращаемого значения:

string

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

Передайте строку URL функции так:

$url = prep_url('example.com');
url_to($controller[, ...$args])
Параметры:
  • $controller (string) – Класс и метод контроллера
  • ...$args (mixed) – Дополнительные аргументы, которые нужно ввести в маршрут
Возвращаемое значение:

Абсолютный URL

Тип возвращаемого значения:

string

Создаёт абсолютный URL для метода контроллера в вашем приложении. Пример:

echo url_to('Home::index');

Вы также можете добавить аргументы в маршрут. Вот пример:

echo url_to('Page::index', 'home');

Приведённый выше пример вернёт что-то вроде: http://example.com/page/home

Это полезно, так как вы всё ещё можете изменять маршруты после добавления ссылок в ваши представления.

url_is($path)
Параметры:
  • $path (строка) – Путь для проверки текущего пути URI.
Тип возвращаемого значения:

boolean

Сравнивает путь текущего URL с заданным путем, чтобы определить соответствие. Пример:

if (url_is('admin')) { ... }

Это сопоставится с http://example.com/admin. Вы можете использовать * подстановочный знак для сопоставления любых других соответствующих символов в URL:

if (url_is('admin*')) { ... }

Это сопоставится с любым из следующих:

  • /admin
  • /admin/
  • /admin/users
  • /admin/users/schools/classmates/…

© 2014–2020 British Columbia Institute of Technology
Licensed under the MIT License.
https://codeigniter.com/user_guide/helpers/url_helper.html

Spec-Zone.ru

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