Foros del Web » Programacin web » PHP »

buscador que busca palabra acentuada y no acentuada

Estas en el tema de buscador que busca palabra acentuada y no acentuada en el foro de PHP en Foros del Web. Hola buenas, tengo una base de datos cuyos campos son cotejamiento : utf8_spanish_ci Estoy haciendo un buscador de palabras, y lo que necesito es que ...
  #1 (permalink)  
Antiguo 03/03/2008, 02:49
 
Fecha de Ingreso: febrero-2002
Ubicacin: Navarra
Mensajes: 701
Antigedad: 12 aos, 2 meses
Puntos: 2
buscador que busca palabra acentuada y no acentuada

Hola buenas, tengo una base de datos cuyos campos son cotejamiento : utf8_spanish_ci

Estoy haciendo un buscador de palabras, y lo que necesito es que si pongo una palabra como eclesiologa, me la busque con acento o sin acento en todas sus variates, por lo qu eutilizo esto:

Cdigo PHP:

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<form method="get" action="buscar.php">
<input type="hidden" name="cmd" value="search" />
<table class="fondo" border="0" align="center" cellpadding="1" cellspacing="0">
<tr><td>';
<table  border="0" align="center" cellpadding="3" cellspacing="0" >
<tr><td class="fondoclaro">

<p class="sinmargen" align="center"> &emsp; T&eacute;rminos a buscar:
<input type="text" name="words" value="<?=$_GET['words']?>" />
<input type="submit" value="Buscar" /></p>
</td></tr></table>
</td></tr></table>
</form>

<?
require("../includes/configuracion.php");

$searchstring mysql_escape_string($_GET['words']);
static 
$acentos "";
    static 
$validos "aeiouAEIOUaeiounNAEIOUaeiouAEIOUaeiouAEIOU";
    
$searchstring =  strtr(utf8_decode($searchstring), $acentos$validos); 

function 
php_rlike($str) { 

            
$a1 = array( 
                
'/[aA]/'
                
'/[eE]/'
                
'/[iI]/'
                
'/[oO]/'
                
'/[u]/'
                
'/[y]/'
                
'/[]/'
                
'/[]/'
            
);

            
$a2 = array( 
                
'[aA]'
                
'[eE]'
                
'[iI]'
                
'[oO]'
                
'[u]'
                
'[y]'
                
'[]'
                
'[]'

            
);

        return 
preg_replace($a1$a2$str); 

    }

$palabra php_rlike($searchstring);

$palabra trim(utf8_encode($palabra));

$_pagi_sql mysql_query("SELECT * FROM campos_st WHERE titulo rlike '$palabra' and id = 1") or die(mysql_error());
   
while(
$row mysql_fetch_array($_pagi_sql))
{

echo 
$row['titulo']."<br>";

}
El caso es que aveces funciona y a veces no y no se cual puede ser el motivo, estoy haciendo la consulta en el id=1 que corresponde con esta frase.

El vocabulario tcnico de Qumrn en relacin con el concepto de comunidad. Estudios premilinares para una eclesiologa bblica. (Primera parte)

Si busco eclesiologia, me lo busca sin problemas, en cambio si por ejemplo busco relacion, no me muestra valores, le van solo las palabras raras?

Alguien sabe porque puede estar fallando esto?

Un saludo
__________________
asp, php, .net, adaptandose a las necesidades
  #2 (permalink)  
Antiguo 03/03/2008, 17:57
 
Fecha de Ingreso: febrero-2002
Ubicacin: Navarra
Mensajes: 701
Antigedad: 12 aos, 2 meses
Puntos: 2
Re: buscador que busca palabra acentuada y no acentuada

nadie sabe si como lo estoy haciendo estara bien?, con esto en principio buscara palabras acentuadas y no acentuadas, alguien conoce alg metodo mejor?

Un saludo
__________________
asp, php, .net, adaptandose a las necesidades
Atencin: Ests leyendo un tema que no tiene actividad desde hace ms de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SEste tema le ha gustado a 2 personas (incluyndote)




La zona horaria es GMT -6. Ahora son las 03:16.
SEO by vBSEO 3.3.2