Ver Mensaje Individual
  #1 (permalink)  
Antiguo 15/07/2009, 00:15
RabidFish
 
Fecha de Ingreso: julio-2008
Ubicación: Córdoba, Argentina
Mensajes: 266
Antigüedad: 15 años, 9 meses
Puntos: 26
Usar str_replace para URLs amigables

Hola a todos.
Primero quiero aclarar que no sé prácticamente nada de PHP y por eso mi duda es muy básica, pero espero que me puedan ayudar.
El tema es que uso un archivo .htaccess de Apache para crear URLs amigables, por ejemplo:
RewriteRule ^paginaconfotos$ index.php?go=1&title=Página_con_fotos [L]
Lo que hace eso es mostrar www.dominio.com/paginaprincipal con el título Página con fotos en vez de algo largo como http://www.dominio.com/index.php?go=...gina_con_fotos. Bien, para recoger ese título yo uso esto en el header de index.php:
<title>Mi sitio &gt; <?php $title=$_GET['title']; if(isset($title)) {echo str_replace("_", " ", $title);} else {echo'Principal';} ?></title>
Lo que hace es reemplazar los _ que usé en el .htaccess por espacios y muestra "Principal" en caso de no especificar un title (por ejemplo si entramos a www.dominio.com.
Ahora bien, el problema es que yo no sólo quiero reemplazar los espacios, sino también cosas como &aacute;, &eacute;, &iacute;, &oacute;, &uacute; por á, é, í, ó, ú, etc. para que algo así:
P&aacute;gina_con_fotos
...quede así al verlo en el navegador:
Página con fotos
Encontré en el manual de PHP algo así:
<?php
function niceURL($string)
{
$que = array( 'á','é','í','ó','ú','Á','É','Í','Ó','Ú','ñ','Ñ' ,' ' );
$por = array( 'a','e','i','o','u','A','E','I','O','U','n','n','-' );
return strtolower( str_replace( $que,$por,$string ) );
}
?>
...pero no sé bien cómo introducirlo en mi línea de PHP.
Espero haberme explicado bien. Saludos y gracias de antemano.