Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
ae pessoal, fiz um script q resulta em um array especifico para a busca no db, excluindo caracters especiais, acentos etc... segue abaixo:
<?php
if($_SERVER['REQUEST_METHOD'] == "POST"){
function remove_simbolos_acentos($string){
$a = 'ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõöøùúûüýýþÿŔŕ?';
$b = 'aaaaaaaceeeeiiiidnoooooouuuuybsaaaaaaaceeeeiiiidnoooooouuuuyybyRr-';
$string = strtr($string, utf8_decode($a), $B);
$string = str_replace(".","",$string);
$string = preg_replace( "/[^0-9a-zA-Z\.]+/",'_',$string);
return utf8_decode(strtolower($string));
}
$original= $_POST['busca'];
#$_text= str_replace(' ','_',$original);
$texto_alterado = remove_simbolos_acentos(utf8_decode($original));
if(substr($texto_alterado, -1) == '_'){
$texto_alterado = substr_replace($texto_alterado, '', -1);
};
header('location: busca/'.$texto_alterado);
}
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Teste</title>
</head>
<body>
<form action="" method="post">
<input name="busca" type="text" />
<input name="submit" type="submit" />
</form>
</body>
</html>
e o da busca:
<?php
$original = $_GET['text'];
print_r(explode('_', $original));
?>
então resumindo se eu colocar no campo:
TEste! É blá blá blá!!!! !@#$%¨&()/--+.<>:?{}`^ TESTE SDFLÇJK ççç -+. #
vai redireciona para:
http://meusite.com.br/busca/teste_e_bla_bla_bla_teste_sdflcjk_ccc
e imprime na tela um array:
Array ( [0] => teste [1] => e [2] => bla [3] => bla [4] => bla [5] => teste [6] => sdflcjk [7] => ccc )
agora preciso de uma ajuda...
como eu disse no titulo removendo palavras repetidas num array...
esse array será usado para buscar dados no db então ja tirei os acentos, caracteres especiais, só falta excluir letras unicas como o "e"...
digamos q uns 10 posts tenham no titulo a letra e dae vai mostrar os dez na busca sendo q não tem nada a ver...
essa letra sozinha é detectada na busca aki do forum, mas não excluida e sim mostra a notificação para o usuario apagar....
alguem ajuda como excluir essas letras sobrando??
------------------------------
update: Exclui as palavras repetidas (que pedia no titulo) só falta as letras sozinhas:
<?php
$original = $_GET['text'];
$busca = explode('_', $original);
$result = array_unique($busca);
echo "<pre>";
var_dump($result);
echo "</pre>";
?>
imprime:
array(5) {
[0]=>
string(5) "teste"
[1]=>
string(1) "e"
[2]=>
string(3) "bla"
[6]=>
string(7) "sdflcjk"
[7]=>
string(3) "ccc"
}
só falta excluir as letras unicas no caso ali o e...
depois como q junto denovo esse array para que fique teste_bla_teste_sdflcjk_ccc???
dae eu passo ela ja pronta para a busca... vlww
Carregando comentários...