Codificación de URL en PHP

Shraddha Paghdar 22 enero 2022
  1. Utilice urlencode() para codificar la URL en PHP
  2. Utilice rawurlencode() para codificar URL en PHP
Codificación de URL en PHP

Las URL pueden tener una ruta y parámetros de consulta como el nombre completo de alguien, otra URL de redireccionamiento o una contraseña. Estos pueden contener caracteres especiales fuera del conjunto ASCII, como espacios o caracteres como $ & : /.

Por lo tanto, la URL debe volver a generarse en un formato ASCII legítimo antes de transmitirse a través de Internet; de lo contrario, pueden interferir con el protocolo HTTP.

En la publicación de hoy, aprenderemos cómo codificar URL en PHP.

PHP proporciona 2 funciones para codificar la URL.

Utilice urlencode() para codificar la URL en PHP

Es una función incorporada proporcionada por PHP que se utiliza para codificar la URL. Esta función reemplaza los caracteres ASCII inseguros con un % seguido de 2 dígitos hexadecimales. Esta función codifica según application/x-www-form-urlencoded. Una URL no puede contener espacios, por lo que esta función reemplazará el espacio con un signo más +. Los caracteres especiales se regeneran en un formato extremadamente específico basado en algunas reglas predefinidas.

Sintaxis de urlencode()

urlencode(string $input);

Parámetros

$input: este es un parámetro obligatorio, que solo toma la URL de entrada de cadena en la que se realiza la codificación.

Valor devuelto

Devuelve una cadena que contiene todos los caracteres no alfanuméricos excepto -_., Que son reemplazados por el signo % y seguidos por 2 dígitos hexadecimales.

Código de ejemplo:

<?php
    echo urlencode("https://www.google.co.in/") . "\n";
    echo urlencode("https://www.google.com/") . "\n";
?>

Producción :

https%3A%2F%2Fwww.google.co.in%2F
https%3A%2F%2Fwww.google.com%2F

Utilice rawurlencode() para codificar URL en PHP

Es una función incorporada proporcionada por PHP que puede codificar una determinada cadena de URL (localizador uniforme de recursos) de acuerdo con RFC 3986. Se codifica de acuerdo con la codificación porcentual simple. Se utiliza para evitar que los caracteres literales se interpreten como delimitadores de URL especiales y para evitar que los medios de transmisión alteren las URL con conversiones de caracteres (como algunos sistemas de correo electrónico).

Los símbolos o el carácter de espacio se reemplazarán con un signo de porcentaje (%) seguido de 2 dígitos hexadecimales.

Sintaxis de rawurlencode()

rawurlencode(string $input);

Parámetros

$input: Es un parámetro obligatorio que toma solo la URL de entrada de cadena en la que se realiza la codificación.

Valor devuelto

Devuelve una cadena codificada que contiene todos los caracteres no alfanuméricos excepto los símbolos -_.~.

Código de ejemplo:

<?php
   echo '<a href="http://testdomain.com/', rawurlencode('subscribers and admins/India'), '">';
?>

Producción :

<a href="http://testdomain.com/subscribers%20and%20admins%2FIndia">

La única distinción entre las funciones urlencode() y rawurlencode() es que primero codifica el espacio como + y luego codifica como %20. También ~ está codificado en urlencode() pero no en rawurlencode(). Si desea codificar el componente de consulta, use urlencode() y si desea codificar un segmento de ruta, use rawurlencode().

Shraddha Paghdar avatar Shraddha Paghdar avatar

Shraddha is a JavaScript nerd that utilises it for everything from experimenting to assisting individuals and businesses with day-to-day operations and business growth. She is a writer, chef, and computer programmer. As a senior MEAN/MERN stack developer and project manager with more than 4 years of experience in this sector, she now handles multiple projects. She has been producing technical writing for at least a year and a half. She enjoys coming up with fresh, innovative ideas.

LinkedIn