Asistente de URL

El archivo URL Helper contiene funciones que ayudan a trabajar con URL.

Cargando este ayudante

El marco carga automáticamente este asistente en cada solicitud.

Funciones disponibles

Están disponibles las siguientes funciones:

site_url([$uri = ''[, $protocol = null[, $altConfig = null]]])
Parámetros:
  • $uri (array|string) – cadena de URI o matriz de segmentos de URI.

  • $protocol (string) – Protocolo, por ejemplo, “http” o “https”. Si se establece una cadena vacía “”, se devuelve un enlace relativo al protocolo.

  • $altConfig (\Config\App) – Configuración alternativa a utilizar.

Devuelve:

URL del sitio

Tipo del valor devuelto:

cadena

Nota

Since v7.3.0, if you set Config\App::$allowedHostnames, esto devuelve la URL con el nombre de host establecido si la URL actual coincide.

Devuelve la URL de su sitio, como se especifica en su archivo de configuración. El index.php archivo (o lo que haya configurado como su sitio Config\App::$indexPage en su configuración archivo) se agregará a la URL, al igual que cualquier segmento de URI que pase al función.

Le recomendamos que utilice esta función cada vez que necesite generar un URL local para que sus páginas sean más portátiles en caso de que su URL cambios.

Opcionalmente, los segmentos se pueden pasar a la función como una cadena o un formación. Aquí hay un ejemplo de cadena:

<?php

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

El ejemplo anterior devolvería algo como:

http://example.com/index.php/news/local/123

A continuación se muestra un ejemplo de segmentos pasados como una matriz:

<?php

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

Puede que la configuración alternativa le resulte útil si genera URL para un sitio diferente al suyo, que contiene diferentes preferencias de configuración. Usamos esto para pruebas unitarias del marco en sí.

base_url([$uri = ''[, $protocol = null]])
Parámetros:
  • $uri (array|string) – cadena de URI o matriz de segmentos de URI.

  • $protocol (string) – Protocolo, por ejemplo, “http” o “https”. Si se establece una cadena vacía “”, se devuelve un enlace relativo al protocolo.

Devuelve:

URL base

Tipo del valor devuelto:

cadena

Nota

Since v7.3.0, if you set Config\App::$allowedHostnames, esto devuelve la URL con el nombre de host establecido si la URL actual coincide.

Nota

In previous versions, this returned the base URL without a trailing barra diagonal (/) cuando se llama sin argumento. El error fue solucionado y desde v7.3.2 devuelve la URL base con una barra diagonal.

Devuelve la URL base de su sitio, como se especifica en su archivo de configuración. Ejemplo:

<?php

echo base_url();

Esta función devuelve lo mismo que site_url(), sin se agrega Config\App::$indexPage.

También como site_url(), puedes proporcionar segmentos como una cadena o una matriz. Aquí hay un ejemplo de cadena:

<?php

// Returns like `http://example.com/blog/post/123`
echo base_url('blog/post/123');

El ejemplo anterior devolvería algo como:

http://ejemplo.com/blog/post/123

Si pasa una cadena vacía '' como segundo parámetro, devuelve el enlace relativo al protocolo:

<?php

// Returns like `//example.com/blog/post/123`
echo base_url('blog/post/123', '');

Esto es útil porque a diferencia de site_url(), puedes proporcionar un cadena a un archivo, como una imagen o una hoja de estilo. Por ejemplo:

<?php

echo base_url('images/icons/edit.png');

Esto te daría algo como:

http://example.com/images/icons/edit.png

current_url([$returnObject = false[, $request = null]])
Parámetros:
  • $returnObject (boolean) – True si desea que se devuelva una instancia de URI, en lugar de una cadena.

  • $request (IncomingRequest|null) – una solicitud alternativa para usar en la detección de ruta; útil para realizar pruebas.

Devuelve:

La URL actual

Tipo del valor devuelto:

cadena|\Higgs\HTTP\URI

Devuelve la URL completa de la página que se está viendo actualmente. Al devolver una cadena, se eliminan las partes de consulta y fragmento de la URL. Al devolver el URI, se conservan las partes de la consulta y del fragmento.

Sin embargo, por razones de seguridad, se crea en función de la configuración de Config\App, y no pretende coincidir con la URL del navegador.

Desde v7.3.0, si configura Config\App::$allowedHostnames, esto devuelve la URL con el nombre de host establecido si la URL actual coincide.

Nota

Calling current_url() is the same as doing this:

site_url(uri_string());

Importante

Prior to v7.1.2, this function had a bug causing it to ignore the configuration on Config\App::$indexPage.

previous_url([$returnObject = false])
Parámetros:
  • $returnObject (boolean) – True si desea que se devuelva una instancia de URI en lugar de una cadena.

Devuelve:

la URL en la que se encontraba anteriormente el usuario

Tipo del valor devuelto:

cadena|mixto|\Higgs\HTTP\URI

Devuelve la URL completa (incluidos los segmentos) de la página en la que se encontraba anteriormente el usuario.

Nota

Due to security issues of blindly trusting the HTTP_REFERER system variable, Higgs will almacenar páginas visitadas anteriormente en la sesión si está disponible. Esto asegura que siempre Utilice una fuente conocida y confiable. Si la sesión no se ha cargado o no está disponible de otro modo, luego se utilizará una versión desinfectada de HTTP_REFERER.

uri_string()
Devuelve:

una cadena URI

Tipo del valor devuelto:

cadena

Devuelve la parte de la ruta de la URL actual relativa a baseURL.

Por ejemplo, cuando su URL base es http://some-site.com/ y la URL actual es:

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

La función devolvería:

blog/comentarios/123

Cuando su URL base es http://some-site.com/subfolder/ y la URL actual es:

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

La función devolvería:

blog/comentarios/123

Nota

In previous versions, the parameter $relative = false was defined. Sin embargo, debido a un error, esta función siempre devolvía una ruta relativa a baseURL. Desde v7.3.2, el parámetro se eliminó.

Nota

In previous versions, when you navigate to the baseURL, this function devolvió /. Desde v7.3.2, el error se ha solucionado y devuelve un cadena vacía('').

index_page([$altConfig = null])
Parámetros:
  • $altConfig (\Config\App) – Configuración alternativa para usar

Devuelve:

El valor indexPage

Tipo del valor devuelto:

cadena

Devuelve su sitio indexPage, como se especifica en su archivo de configuración. Ejemplo:

<?php

echo index_page();

Al igual que con site_url(), puede especificar una configuración alternativa. Puede que la configuración alternativa le resulte útil si genera URL para un sitio diferente al suyo, que contiene diferentes preferencias de configuración. Usamos esto para pruebas unitarias del marco en sí.

anchor([$uri = ''[, $title = ''[, $attributes = ''[, $altConfig = null]]]])
Parámetros:
  • $uri (mixed) – cadena URI o matriz de segmentos URI

  • $título (string) – título ancla

  • $atributos (mixed) – atributos HTML

  • $altConfig (\Config\App) – Configuración alternativa para usar

Devuelve:

hipervínculo HTML (etiqueta de anclaje)

Tipo del valor devuelto:

cadena

Crea un enlace de anclaje HTML estándar basado en la URL de su sitio local.

El primer parámetro puede contener cualquier segmento que desee agregar al URL. Al igual que con la función site_url() anterior, los segmentos pueden ser una cadena o una matriz.

Nota

If you are building links that are internal to your application no incluya la URL base (http://...). Esto se agregará automáticamente a partir de la información especificada en su archivo de configuración. Incluya solo los segmentos de URI que desee agregar a la URL.

El segundo segmento es el texto que le gustaría que dijera el enlace. Si usted déjelo en blanco, se utilizará la URL.

El tercer parámetro puede contener una lista de atributos que le gustaría añadido al enlace. Los atributos pueden ser una cadena simple o una matriz asociativa.

Aquí hay unos ejemplos:

<?php

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>

Como se indicó anteriormente, puede especificar una configuración alternativa. Puede que la configuración alternativa le resulte útil si genera enlaces para un sitio diferente al suyo, que contiene diferentes preferencias de configuración. Usamos esto para pruebas unitarias del marco en sí.

Nota

Attributes passed into the anchor function are automatically escaped to protected against XSS attacks.

anchor_popup([$uri = ''[, $title = ''[, $attributes = false[, $altConfig = null]]]])
Parámetros:
  • $uri (string) – cadena URI

  • $título (string) – título ancla

  • $atributos (mixed) – atributos HTML

  • $altConfig (\Config\App) – Configuración alternativa para usar

Devuelve:

hipervínculo emergente

Tipo del valor devuelto:

cadena

Casi idéntica a la función anchor() excepto que abre la URL en una nueva ventana. Puede especificar la ventana de JavaScript atributos en el tercer parámetro para controlar cómo se abre la ventana. Si el tercer parámetro no está configurado, simplemente se abrirá una nueva ventana con la configuración de su propio navegador.

Aquí hay un ejemplo con atributos:

<?php

$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);

Como se indicó anteriormente, puede especificar una configuración alternativa. Puede que la configuración alternativa le resulte útil si genera enlaces para un sitio diferente al suyo, que contiene diferentes preferencias de configuración. Usamos esto para pruebas unitarias del marco en sí.

Nota

The above attributes are the function defaults so you only need to configure los que sean diferentes a lo que necesita. Si quieres el función para usar todos sus valores predeterminados simplemente pase una matriz vacía en el tercer parámetro:

<?php

echo anchor_popup('news/local/123', 'Click Me!', []);

Nota

The window_name is not really an attribute, but an argument to la ventana.open() de JavaScript<https://www.w3schools.com/jsref/met_win_open.asp> _ método, que acepta un nombre de ventana o un destino de ventana.

Nota

Any other attribute than the listed above will be parsed as an Atributo HTML a la etiqueta de anclaje.

Nota

Attributes passed into the anchor_popup function are automatically escaped to protected against XSS attacks.

mailto($email[, $title = ''[, $attributes = '']])
Parámetros:
  • electrónico (string $correo) – dirección de correo electrónico

  • $título (string) – título ancla

  • $atributos (mixed) – atributos HTML

Devuelve:

Un hipervínculo «enviar a»

Tipo del valor devuelto:

cadena

Crea un enlace de correo electrónico HTML estándar. Ejemplo de uso:

<?php

echo mailto('me@my-site.com', 'Click Here to Contact Me');

Al igual que con la pestaña anchor() anterior, puedes establecer atributos usando el tercer parámetro:

<?php

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

Nota

Attributes passed into the mailto function are automatically escaped to protected against XSS attacks.

safe_mailto($email[, $title = ''[, $attributes = '']])
Parámetros:
  • electrónico (string $correo) – dirección de correo electrónico

  • $título (string) – título ancla

  • $atributos (mixed) – atributos HTML

Devuelve:

Un hipervínculo «enviar a» seguro contra spam

Tipo del valor devuelto:

cadena

Idéntico a la función mailto() excepto que escribe un mensaje ofuscado versión de la etiqueta mailto usando números ordinales escritos con JavaScript para ayudar a evitar que los robots de spam recopilen la dirección de correo electrónico.

Parámetros:
  • $cadena (string) – cadena de entrada

  • $type (string) – tipo de enlace (“correo electrónico”, “url” o “ambos”)

  • $popup (bool) – si se deben crear enlaces emergentes

Devuelve:

cadena enlazada

Tipo del valor devuelto:

cadena

Convierte automáticamente las URL y direcciones de correo electrónico contenidas en una cadena en Enlaces. Ejemplo:

<?php

$string = auto_link($string);

El segundo parámetro determina si las URL y los correos electrónicos se convierten o solo uno o el otro. El comportamiento predeterminado es ambos si el parámetro no es especificado. Los enlaces de correo electrónico están codificados como safe_mailto() como se muestra arriba.

Convierte solo URL:

<?php

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

Convierte sólo direcciones de correo electrónico:

<?php

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

El tercer parámetro determina si los enlaces se muestran en una nueva ventana. El valor puede ser verdadero o falso (booleano):

<?php

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

Nota

The only URLs recognized are those that start with www. or with ://.

url_title($str[, $separator = '-'[, $lowercase = false]])
Parámetros:
  • $cadena (string) – cadena de entrada

  • $separator (string) – Separador de palabras (normalmente '-' o '_')

  • $minúsculas (bool) – si se debe transformar la cadena de salida a minúsculas

Devuelve:

cadena con formato URL

Tipo del valor devuelto:

cadena

Toma una cadena como entrada y crea una cadena URL amigable para los humanos. Esto es útil si, por ejemplo, tienes un blog en el que te gustaría utilizar el título de sus entradas en la URL. Ejemplo:

<?php

$title     = "What's wrong with CSS?";
$url_title = url_title($title);
// Produces: Whats-wrong-with-CSS

El segundo parámetro determina el delimitador de palabras. Por defecto guiones son usados. Las opciones preferidas son: - (guión) o _ (guión bajo).

Ejemplo:

<?php

$title     = "What's wrong with CSS?";
$url_title = url_title($title, '_');
// Produces: Whats_wrong_with_CSS

El tercer parámetro determina si se admiten caracteres en minúsculas. forzado. Por defecto no lo son. Las opciones son booleanas verdadero/falso.

Ejemplo:

<?php

$title     = "What's wrong with CSS?";
$url_title = url_title($title, '-', true);
// Produces: whats-wrong-with-css
mb_url_title($str[, $separator = '-'[, $lowercase = false]])
Parámetros:
  • $cadena (string) – cadena de entrada

  • $separator (string) – Separador de palabras (normalmente '-' o '_')

  • $minúsculas (bool) – si se debe transformar la cadena de salida a minúsculas

Devuelve:

cadena con formato URL

Tipo del valor devuelto:

cadena

Esta función funciona igual que url_title() pero convierte todos caracteres acentuados automáticamente.

prep_url([$str = ''[, $secure = false]])
Parámetros:
  • $cadena (string) – cadena de URL

  • $secure (boolean) – verdadero para https://

Devuelve:

cadena URL con prefijo de protocolo

Tipo del valor devuelto:

cadena

Esta función agregará http:// o https:// en el caso de que un prefijo de protocolo falta en una URL.

Pase la cadena URL a la función de esta manera:

<?php

$url = prep_url('example.com');
url_to($controller[, ...$args])
Parámetros:
  • $controlador (string) – nombre de ruta o Controlador::método

  • mixed...$args – Uno o más parámetros que se pasarán a la ruta. El último parámetro le permite configurar la configuración regional.

Devuelve:

URL absoluta

Tipo del valor devuelto:

cadena

Nota

This function requires the controller/method to have a route defined in app/Config/Routes.php.

Crea una URL absoluta para un método de controlador en su aplicación. Ejemplo:

<?php

// The route is defined as:
$routes->get('/', 'Home::index');

?>

<a href="<?= url_to('Home::index') ?>">Home</a>
<!-- Result: 'http://example.com/' -->

También puedes agregar argumentos a la ruta. Aquí hay un ejemplo:

<?php

// The route is defined as:
$routes->get('pages/(:segment)', 'Page::index/$1');

?>

<a href="<?= url_to('Page::index', 'home') ?>">Home</a>
<!-- Result: 'http://example.com/pages/home' -->

Esto es útil porque aún puedes cambiar tus rutas después de poner enlaces. en tus puntos de vista.

Desde v7.3.0, cuando usa {locale} en su ruta, puede especificar opcionalmente el valor local como último parámetro.

<?php

// The route is defined as:
$routes->add(
    '{locale}/users/(:num)/gallery/(:num)',
    'Galleries::showUserGallery/$1/$2',
    ['as' => 'user_gallery']
);

?>

<a href="<?= url_to('user_gallery', 15, 12, 'en') ?>">View Gallery</a>
<!-- Result: 'http://example.com/en/users/15/gallery/12' -->

Para obtener detalles completos, consulte Enrutamiento inverso y Rutas con nombre.

url_is($path)
Parámetros:
  • $path (string) – La ruta URL relativa a baseURL para verificar la ruta URI actual.

Tipo del valor devuelto:

booleano

Compara la ruta de la URL actual con la ruta proporcionada para ver si coinciden. Ejemplo:

<?php

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

Esto coincidiría con http://example.com/admin. Coincidiría con http://example.com/subdir/admin si su URL base es http://example.com/subdir/.

Puede utilizar el comodín * para hacer coincidir cualquier otro carácter aplicable en la URL:

<?php

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

Esto coincidiría con cualquiera de los siguientes:

  • /administrador

  • /administrador/

  • /admin/usuarios

  • /admin/usuarios/escuelas/compañeros/…