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 agregaConfig\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 deHTTP_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.
- auto_link($str[, $type = 'both'[, $popup = false]])
- 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 parahttps://
- Devuelve:
cadena URL con prefijo de protocolo
- Tipo del valor devuelto:
cadena
Esta función agregará
http://
ohttps://
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étodomixed...$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/…