Ver Mensaje Individual
  #1 (permalink)  
Antiguo 18/07/2011, 06:59
mitrofan
 
Fecha de Ingreso: mayo-2010
Mensajes: 128
Antigüedad: 14 años
Puntos: 13
No me funciona función para quitar caracteres especiales

Tengo está función, que limpia acentos y caracteres especiales para conventir una cadena en una URL amigable del tipo vendo-ordenador-portatil.html
en vez de vendo-ordenador-portátil.html que no enlazaría bien debido al acento.
En concreto está es la función:

funciones.php
Código PHP:
<?php
function limpiar($String){
        
$String str_replace(array('á','à','â','ã','ª','ä'),"a",$String);
        
$String str_replace(array('Á','À','Â','Ã','Ä'),"A",$String);
        
$String str_replace(array('Í','Ì','Î','Ï'),"I",$String);
        
$String str_replace(array('í','ì','î','ï'),"i",$String);
        
$String str_replace(array('é','è','ê','ë'),"e",$String);
        
$String str_replace(array('É','È','Ê','Ë'),"E",$String);
        
$String str_replace(array('ó','ò','ô','õ','ö','º'),"o",$String);
        
$String str_replace(array('Ó','Ò','Ô','Õ','Ö'),"O",$String);
        
$String str_replace(array('ú','ù','û','ü'),"u",$String);
        
$String str_replace(array('Ú','Ù','Û','Ü'),"U",$String);
        
$String str_replace(array('[','^','´','`','¨','~',']'),"",$String);
        
$String str_replace("ç","c",$String);
        
$String str_replace("Ç","C",$String);
        
$String str_replace("ñ","n",$String);
        
$String str_replace("Ñ","N",$String);
        
$String str_replace("Ý","Y",$String);
        
$String str_replace("ý","y",$String);
        return 
$String;
        }
?>
La cual funciona perfectamente si se integra dentro de un archivo (index.php o el que sea), pero no si la meto en un archivo a parte y luego la llamo con un require_once o un include.

Por ejemplo:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
.
.
.
</head>
<body>
.
.
.
<?php
require_once("funciones.php") //Aqui estaría la función
$titulo="Holá";
echo $titulo;
</body>
</html>

Y saldría por pantalla Holá, en vez de Hola.