Problemas con “acentos”, “eñes” Ñ y más en php en títulos.

Generalmente cuando migramos a otro servidor o actualizamos PHP nos topamos con un lio tremendo al ver el resultado de un título de esta manera

MaÑanas Lindas títulos

La manera como yo le doy solución es haciendo lo siguiente:

1.- Colocamos el siguiente código antes de empezar cualquier codificación

<?php
header('Content-Type: text/html; charset=ISO-8859-1');
?>

2.- Llamamos la cadena del título a nuestra base de datos, en este caso yo ya lo hare con un resultado final obtenido.

<?php
header('Content-Type: text/html; charset=ISO-8859-1');
$show['title'] = 'MaÑanas Lindas t&iacute;tulos';
?>

3.- Escañemos la cadena para encontratrar la “eñe” y acentos.

<?php
header('Content-Type: text/html; charset=ISO-8859-1');
$show['title'] = 'MaÑanas Lindas t&iacute;tulos';
$show['title'] = ''.utf8_decode($show['title']).'';
?>

Obtendremos un resultado de la siguiente manera “MaÑanas Lindas títulos”, como te daras cuenta la lectra “eñe” lo temenos en mayuscula, para corregir esto realizamos lo siguiente.

4.- Convertimos toda la cadena en minusculas.

<?php
header('Content-Type: text/html; charset=ISO-8859-1');
$show['title'] = 'MaÑanas Lindas t&iacute;tulos';
$show['title'] = ''.utf8_decode($show['title']).'';
$show['title'] = strtr(strtolower($show['title']),"ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÜÚÞß","àáâãäåæçèéêëìíîïðñòóôõö÷øùüúþÿ");
?>

El resultado que vamos a obtener es la siguiente “mañanas lindas títulos”, como es un titulo vamos a hacer que todas las primeras letras se pongan en mayuscula.

5.- Convertimos toda la primera letra de cada palabra en mayuscula.

<?php
header('Content-Type: text/html; charset=ISO-8859-1');
$show['title'] = 'MaÑanas Lindas t&iacute;tulos';
$show['title'] = ''.utf8_decode($show['title']).'';
$show['title'] = strtr(strtolower($show['title']),"ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÜÚÞß","àáâãäåæçèéêëìíîïðñòóôõö÷øùüúþÿ");
$show['title'] = ucwords(strtolower($show['title']));
?>

Y asi obtendremos el siguiente resultado “Mañanas Lindas Títulos

Espero que te sirva.



 

Arriba