Buscar con acentos y sin acento php mysql

Fecha Publicación:       10 de Octubre de 2019
Fecha Modificación:       18 de Febrero de 2020

Si estas almacenando los caracteres extraños en la base de datos como entidades html, en la consulta puedes usar la funcion REPLACE para sustituir a códigos HTML

$sql_consulta = "SELECT campo1
		FROM tabla WHERE 
		(REPLACE(campo1,'á','a') like '%".$cadena."%' or 
		REPLACE(campo1,'é','e') like '%".$cadena."%' or 
		REPLACE(campo1,'í','i') like '%".$cadena."%' or 
		REPLACE(campo1,'ó','o') like '%".$cadena."%' or 
		REPLACE(campo1,'ú','u') like '%".$cadena."%' or  
		REPLACE(campo1,'ñ','n') like '%".$cadena."%' )" ;					

 

Ahora debemos quitar los acentos cuando el usuario ingresado una palabra con acento.

function eliminar_acentos($cCadena){
	    //echo $cCadena."---------------eliminar_acentocCadena-------";exit;
		//$cCadena  = utf8_decode($cCadena);
		//$cCadena = mb_convert_encoding($cCadena, 'UTF-8',"UTF-8");
		$cCadena = utf8_decode($cCadena);
		$cCadena = preg_replace("/á|à|â|ã|ª/","a",$cCadena);
		$cCadena = preg_replace("/Á|À|Â|Ã/","A",$cCadena);
		$cCadena = preg_replace("/é|è|ê/","e",$cCadena);
		$cCadena = preg_replace("/É|È|Ê/","E",$cCadena);
		$cCadena = preg_replace("/í|ì|î/","i",$cCadena);
		$cCadena = preg_replace("/Í|Ì|Î/","I",$cCadena);
		$cCadena = preg_replace("/ó|ò|ô|õ|º/","o",$cCadena);
		$cCadena = preg_replace("/Ó|Ò|Ô|Õ/","O",$cCadena);
		$cCadena = preg_replace("/ú|ù|û/","u",$cCadena);
		$cCadena = preg_replace("/Ú|Ù|Û/","U",$cCadena);
		$cCadena = str_replace("ñ","n",$cCadena);
		$cCadena = str_replace("Ñ","N",$cCadena);
	// echo $cCadena."---------------fin eliminar_acentocCadena-------";exit;
		return $cCadena;		
}


Veamos un ejemplo utilizando la función creada para reemplazar los acentos de algunas palabras:

$cadena = "Árbol lápiz Élite Félix Índice mí Órbita natación Único algún Ñoño";
echo 'Original: ' . $cadena;
echo 'Reemplazo: ' . eliminar_acentos($cadena);

 

Articulo : 1669 - Veces Leidas
Compartir Articulo: