João (: 0 Denunciar post Postado Outubro 13, 2013 Bom dia, primeiramente estou aprendendo PHP, e estou tentando adaptar alguns códigos a minha necessidade, Bem, eu preciso converter um PDF e fazer uma pesquisa dentro dele, isso já obtive êxito. O meu problema agora é que assim, eu recebo um nome por formulário (post) e então o script é executado e faz a pesquisa, só que se no arquivo tiver: JOÃO e eu pesquisar por: João, ele não encontra, e eu queria também fazer com que: JOAO e joão (com e sem acento) fosse a mesma coisa, pra ele encontrar do mesmo jeito. O pdf está todo guardado em uma string, usei o script pdf2text. Aqui segue o código da pesquisa e do index: index.php <?php include('class.pdf2text.php'); include ('pesquisa.php'); $nome = $_POST['nome']; // Lista de arquivos a serem percorridos $arquivos = array ("teste.pdf","teste2.pdf"); // Percorrer vários PDFS for($i=0; $i<=1; $i++) { $a = new PDF2Text(); $a->setFilename($arquivos[$i]); $a->decodePDF(); echo $a->output(); $frase = $a->output(); /*Inserir nomes na array para fazer a verificação*/ $palavras = explode(" ",$nome); /*Verificar se palavra existe*/ if(procpalavras($frase, $palavras) == 1) { echo "<br><br>O seu nome foi encontrado!<br><br>"; } else { echo "<br><br>O seu nome não foi encontrado!<br><br>"; } } ?> pesquisa.php <?php function procpalavras ($frase, $palavras, $resultado = 0) { foreach ( $palavras as $key => $value ) { $pos = strpos($frase, $value); if ($pos !== false) { $resultado = 1; break; } } return $resultado; } ?> Obrigado pela atenção, e obrigado desde já a quem ajudar, já procurei no google, e não consegui resultado. Valeu. Compartilhar este post Link para o post Compartilhar em outros sites
Micilini Roll 49 Denunciar post Postado Outubro 13, 2013 Hm interessante, na verdade eu nao sei, mas pra quebrar o galho poderiamos pegar as palavras e converte-las todas para minusculo e assim fazer a comparação a ferramente que faz este tipo de coisa se chama strtolower e pode ser encontrada com mais detalhes aqui: http://php.net/manual/pt_BR/function.strtolower.php Basicamente voce estara convertendo ambos os textos digitados para minusculo ignorando efetivamente caso. Compartilhar este post Link para o post Compartilhar em outros sites
João (: 0 Denunciar post Postado Outubro 13, 2013 O problema é porque assim, eu não sei como vai estar no PDF entende? Em alguns pdfs, podem estar JOAO, outros: João, outros: JOÃO, Joao, esses 4 casos, será que eu poderia fazer então assim, vamos supor, umas 4 arrays, e cada uma com um "padrão diferente" ai eu comparo todas elas? Vai ser meio que uma gambiarra né, mas acho que deve funcionar. Vou tentar, mas se alguém tiver uma solução melhor, por favor compartilhe ae. Obrigado Micillini. Compartilhar este post Link para o post Compartilhar em outros sites
raonibs 64 Denunciar post Postado Outubro 13, 2013 Converta as strings do PDF para minusculo ou maiúsculo como dito pelo Micilini e substitua caracteres acentuados por não acentuados. Algo como isso: $str = trim($str); $str = strtolower($str); //Tudo em minusculo $a = 'ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõöøùúûýýþÿŔŕ'; $b = 'aaaaaaaceeeeiiiidnoooooouuuuybsaaaaaaaceeeeiiiidnoooooouuuyybyrr'; $str = strtr($str, $a, $b); //substitui letras acentuadas por "normais" Compartilhar este post Link para o post Compartilhar em outros sites
Micilini Roll 49 Denunciar post Postado Outubro 13, 2013 Bem talvez a unica opção para esta situação é: Pegar as strings (textos) converter para minusculas ou maiusculas Pegar as strings (texto) digitado na busca para minusculas ou maiusculas Filtrar ambos as strings contra caracteres especiais como acentos entre outros Ou voce joga as strings no banco de dados e executa o comando %LIKE%, que tambem é uma alternativa, se nao voce devera fazer isso mesmo que voce disse... Mas no caso do que voce acabou de dizer, ai ja passamos pra um sistema de redes neural de nivel basico que devera funcionar da seguinte forma: Voce devera fazer com que palavras como joão sejam semelhantes a joao, ou seja se voce digitar joao na busca e no pdf vier joão, primeiro voce apresenta ao usuarios palavras com o joao sem acento e em seguida voce apresenta como o google +/- faz como: Voce quiz dizer João? Mais ai depende de muitos outros fatores que irão influenciar a busca! uma especie de corretor ortografico, (mas mesmo assim se o user pesquisar joao nao deixe de colocar palavras que contenham joao com acento...) Compartilhar este post Link para o post Compartilhar em outros sites
João (: 0 Denunciar post Postado Outubro 13, 2013 Acho que a melhor solução mesmo é a que vocês falaram de converter o PDF para minúsculo, e substituir as letras acentuadas por letras normais, e de quebra ainda me ajudaram porque algumas letras ficaram "bugadas" e substituindo todas acentuadas por normais corrige também. Muito obrigado a vocês! De verdade. Abraço. Compartilhar este post Link para o post Compartilhar em outros sites
Raul Silva 41 Denunciar post Postado Outubro 14, 2013 De o post que te ajudou como resolvido e aproveite e de um ponto de reputação para a pessoa =) Compartilhar este post Link para o post Compartilhar em outros sites