Estoy tratando de codificar/decodificar una url que, cuando se descodifique, devolverá los símbolos codificados +
de la url. Por ejemplo, codifico website.com/index.php?eq=1+12
que, cuando está codificado, convierte el +
en %2B
, como debería. Cuando recupero el valor de $_REQUEST['eq']
y uso urldecode()
, echo como "1 12"
. Parece que no puedo obtener la decodificación para traer de vuelta el +
por así decirlo. ¿Estoy haciendo algo mal aquí, o hay una forma más eficiente/mejor para hacer esto? Aquí están las líneas exactas de codificación/decodificación que uso.php URL decode get '+' from URL
Enviar Página
<?php
$eq = "1+12";
$send = '<a href="website.com/index.php?eq='.urlencode($eq).'</a>';
echo $send;
recuperación de páginas
<?php
$eq = urldecode($_REQUEST['eq']);
echo $eq;
?>
así que eliminé el urldecode y guardé el urlencode. Todavía está registrando $ _REQUEST como un espacio. –
No es así cuando copio/pegé ese código y elimino la sentencia 'urldecode'. – Quentin
No estoy seguro, ¿tal vez la versión de php es diferente y funciona de manera diferente? O podrían ser otras partes de mi página conflictivas. Calculé una solución mediante el uso de str_replace ("", "+", $ eq). Probablemente no sea ideal, pero dado que mi URL nunca necesitará espacios, parece que funciona. Gracias por tu ayuda. –