Foros del Web » Programando para Internet » PHP »

Algun funcion que cambia á por a

Estas en el tema de Algun funcion que cambia á por a en el foro de PHP en Foros del Web. No se si existe alguna funcion que te cambie caracteres, lo necesito para el mod_rewrite. Os comento yo utilizo el mod_rewrite, pero cuando la url ...
  #1 (permalink)  
Antiguo 28/02/2005, 16:59
Avatar de MmSTOP  
Fecha de Ingreso: febrero-2003
Ubicación: Madrid
Mensajes: 84
Antigüedad: 21 años, 3 meses
Puntos: 0
Algun funcion que cambia á por a

No se si existe alguna funcion que te cambie caracteres, lo necesito para el mod_rewrite.

Os comento yo utilizo el mod_rewrite, pero cuando la url tiene alguna tilde, ñ o espacio el mod_rewrite no me funciona y claro me gustaria saber si hay alguna funcion que haga esto.

http://www.misitio.com/coche.php?variable=coché loco
por
http://www.misitio.com/coche.php?variable=coche+loco

para luego en el modo rewrite cambiarlo sin problemas.

Es que luego cuando paso la direccion con

http://www.misitio.com/coche/coché loco/ no me encuentra la pagina e buscado funciones pero solo e encontrado unas pero no me sirven.

URLDECODE cambia holá por hol%
HTMLENTITIES tampoco e visto que me vale

Lo que quiero es que cambie á por a , ñ por n, (espacios) por + o guiones bajos, o algo parecido, espero haberme explicarme.

Muchas Gracias anticipadas
__________________
--------------------------------
Gracias a la gente de WWW.FOROSDELWEB.COM que se preocupa de ayudar a la gente novatilla!! me incluyo :D
  #2 (permalink)  
Antiguo 01/03/2005, 01:50
cartucho
Invitado
 
Mensajes: n/a
Puntos:
Mirate esta funcion en el manual

str_replace
(PHP 3>= 3.0.6, PHP 4 )

str_replace -- Sustituye todas las apariciones de la aguja en el pajar por la cadena

Descripción:

string str_replace ( string aguja, string cad, string pajar)

si kieres sustituir á por a ,harias:

$cadena=str_replace ( "á", "a", $cadena);

saludos
  #3 (permalink)  
Antiguo 01/03/2005, 03:19
Avatar de MmSTOP  
Fecha de Ingreso: febrero-2003
Ubicación: Madrid
Mensajes: 84
Antigüedad: 21 años, 3 meses
Puntos: 0
Cambiar letras raras por normales

si pero eso tendria k hacer por todos los caracteres, ademas para eso tengo echo un array, de acentuadas por sin acentuar, pero mi pregunta es si hay alguna funcion o alguna manera mas facil de hacer.


Gracias
__________________
--------------------------------
Gracias a la gente de WWW.FOROSDELWEB.COM que se preocupa de ayudar a la gente novatilla!! me incluyo :D
  #4 (permalink)  
Antiguo 01/03/2005, 06:33
Avatar de MmSTOP  
Fecha de Ingreso: febrero-2003
Ubicación: Madrid
Mensajes: 84
Antigüedad: 21 años, 3 meses
Puntos: 0
Nadie sabe si existe esa funcion, o algo parecido, o tengo que hacer un array o algo parecido, es para poder utilizarlo en el mod_rewrite

Gracias
__________________
--------------------------------
Gracias a la gente de WWW.FOROSDELWEB.COM que se preocupa de ayudar a la gente novatilla!! me incluyo :D
  #5 (permalink)  
Antiguo 01/03/2005, 06:43
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 19 años, 9 meses
Puntos: 102
... con gusto te ayudaría pero ni idea de qué sea mod_rewrite... bueno tengo noción pero ... no sé de dónde sacas los links por ejemplo... en un principio ¿por qué deberian de estar acentados???...

Pero te diré que... sea lo que sea... no hay función mágica... tendrás que crearla... no sé si con JS ó PHP pero el funcionamiento sería lo mismo.. buscar y reemplazar... ni tan complicado!!!...
Suerte!
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #6 (permalink)  
Antiguo 01/03/2005, 07:54
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 4 meses
Puntos: 129
Si hablas de usar el "mod_rewrite" .. lo que necesita es crear tu expresión regular correcta .. Eso no depende de PHP sino del tema de las "expresiones regulares" .. No conozco el tema para ayudarte mejor .. pero es para que sepas que no corresponde a PHP extrictamente (aunque en PHP como en otros lenguajes se pueda usar).

Un saludo,
  #7 (permalink)  
Antiguo 01/03/2005, 12:16
 
Fecha de Ingreso: enero-2004
Ubicación: Santiago
Mensajes: 127
Antigüedad: 20 años, 4 meses
Puntos: 0
Tomado de http://www.php.net/str_replace


Código PHP:
function unaccent($text) {
$trans get_html_translation_table(HTML_ENTITIES); // Get the entities table into an array
    
foreach ($trans as $literal => $entity) {         // Create two arrays, for accented and unaccented forms
       
if (ord($literal) >= 192){                     // Don't contemplate other characters such as fractions, quotes etc
         
$replace[] = substr($entity,1,1);             // Get 'E' from string '&Eaccute' etc.
         
$search[] = $literal;                        // Get accented form of the letter
        
}
    }
return 
str_replace($search$replace$text);

Saludos
  #8 (permalink)  
Antiguo 01/03/2005, 12:25
Avatar de MmSTOP  
Fecha de Ingreso: febrero-2003
Ubicación: Madrid
Mensajes: 84
Antigüedad: 21 años, 3 meses
Puntos: 0
creo k esto solo vale para los acentos verdad??? no vale para las ñ y los acentos, , x cierto HiperJP muchas gracias
__________________
--------------------------------
Gracias a la gente de WWW.FOROSDELWEB.COM que se preocupa de ayudar a la gente novatilla!! me incluyo :D
  #9 (permalink)  
Antiguo 05/06/2008, 10:48
 
Fecha de Ingreso: mayo-2002
Ubicación: En MVD
Mensajes: 34
Antigüedad: 22 años
Puntos: 0
De acuerdo Respuesta: Algun funcion que cambia á por a

Cita:
Iniciado por HiperJP Ver Mensaje
Tomado de http://www.php.net/str_replace


Código PHP:
function unaccent($text) {
$trans get_html_translation_table(HTML_ENTITIES); // Get the entities table into an array
    
foreach ($trans as $literal => $entity) {         // Create two arrays, for accented and unaccented forms
       
if (ord($literal) >= 192){                     // Don't contemplate other characters such as fractions, quotes etc
         
$replace[] = substr($entity,1,1);             // Get 'E' from string '&Eaccute' etc.
         
$search[] = $literal;                        // Get accented form of the letter
        
}
    }
return 
str_replace($search$replace$text);

Saludos
Excelente q encontraste esto!!!!!
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:43.