¿Hay alguna función encodeURI() en PHP que no codifica: [email protected]#$&*()=:/,;?+'
?encodeURI() en PHP?
Respuesta
estoy usando esto ahora
function encodeURI($url) {
// http://php.net/manual/en/function.rawurlencode.php
// https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/encodeURI
$unescaped = array(
'%2D'=>'-','%5F'=>'_','%2E'=>'.','%21'=>'!', '%7E'=>'~',
'%2A'=>'*', '%27'=>"'", '%28'=>'(', '%29'=>')'
);
$reserved = array(
'%3B'=>';','%2C'=>',','%2F'=>'/','%3F'=>'?','%3A'=>':',
'%40'=>'@','%26'=>'&','%3D'=>'=','%2B'=>'+','%24'=>'$'
);
$score = array(
'%23'=>'#'
);
return strtr(rawurlencode($url), array_merge($reserved,$unescaped,$score));
}
Básicamente rawurlencodes todo, y luego decodifica algunas cosas atrás (como Zanlok sugirió en su comentario). Esto debería ajustarse a las especificaciones de Mozilla de encodeURI.
Realmente útil ... –
Puedes agregar ''% 5B' => '[', '% 5D '=>'] ''para los caracteres reservados que coincidan con los RFC3986 (soportes IPV6) – mems
@mems, gracias por la sugerencia. Estoy siguiendo las especificaciones de MDN. Esperaré a que se actualicen. – commonpike
Aquí está una versión alternativa basada en las especificaciones MDN:
function encodeURI($uri)
{
return preg_replace_callback("{[^0-9a-z_.!~*'();,/?:@&=+$#-]}i", function ($m) {
return sprintf('%%%02X', ord($m[0]));
}, $uri);
}
Código maravilloso ... –
Olvidó el guión '-' – disfated
@disfated ¡De hecho! Pasó desapercibido ... Gracias por informarme, acabo de arreglar la respuesta para incluirla. :) –
- 1. Javascript encodeURI como función en postgresql?
- 2. jQuery encodeURI para href no funciona
- 3. ¿Debo usar encodeURI o encodeURIComponent para codificar URL?
- 4. ¿cómo puedo javascript decodeURI en PHP?
- 5. ZipArchive php Class - ¿Está incorporado en PHP?
- 6. PHP date_parse_from_format() alternativa en PHP 5.2
- 7. Para expertos en PHP: ¿Cómo dominar PHP?
- 8. Trackbacks en PHP
- 9. unsigned tinyint en php?
- 10. Md5 ¿Alternativa en PHP?
- 11. variable-variables en PHP
- 12. php if estática en
- 13. PHP matriz en lista
- 14. Unicode en PHP?
- 15. aritmética simple en PHP
- 16. Internacionalización en PHP
- 17. substr_replace codificación en PHP
- 18. descargas paralelas en PHP
- 19. Primer programa en PHP
- 20. Determinar Referer en PHP
- 21. Encriptación simple en PHP
- 22. en Perl y PHP
- 23. Extendiendo singletons en PHP
- 24. Plugin Arquitectura en PHP
- 25. Transliteración inteligente en PHP
- 26. comillas mágicas en PHP
- 27. Implementando permisos en PHP
- 28. de PHP en subclases
- 29. ¿Paquetes en PHP?
- 30. DOMDocument en php
lo tanto, que los caracteres * * Qué quieres que codificar? –
es posible que tengas que volver a personalizar y decodificar los caracteres que te gustaría conservar, si esa es una lista breve – zanlok