function retorne_primeiro_link_array_pesquisa_inteligente($lista_links, $termo_pesquisa, $host_site) { // globals ---------------------------------------------------------------------------- global $separador_dados_tabela; // separador de dados na tabela $busca_exata = retorne_busca_exata(); // busca exata // ---------------------------------------------------------------------------------------- // link de retorno -------------------------------------------------------------------- $link_retorno = null; // link de retorno // ---------------------------------------------------------------------------------------- // array com termos de pesquisa ------------------------------------ $array_termos_pesquisa = retorne_array_termos_pesquisa($termo_pesquisa); // array com termos de pesquisa // ------------------------------------------------------------------------------ // cria array de links -------------------------------------------------------------- $array_links = explode($separador_dados_tabela, $lista_links); // cria array de links // ---------------------------------------------------------------------------------------- // remove duplicatas se houver ------------------------------------------------ $array_links = array_unique($array_links); // remove duplicatas se houver // ---------------------------------------------------------------------------------------- // verifica se a busca e exata ou parcial ------------------------ if ($busca_exata == 1) { $procurar_ocorrencia_termo = true; // busca exata } else { $procurar_ocorrencia_termo = false; // busca nao exata } // ---------------------------------------------------------------------------- // varrendo links ------------------------------------------------------------------ foreach ($array_links as $url_link) { // retorna o host da url ---------------------------------------------------------- $host_url_link = retorna_host_url($url_link); // retorna o host da url // ---------------------------------------------------------------------------------------- // termo encontrado dentro de array de links ------------------------------ if ($host_url_link == $host_site) { $resposta_array_contem_link = retorne_array_site_contem_termo_pesquisa($array_termos_pesquisa, $url_link); // resposta se o array contem o primeiro link $termo_encontrado_resposta = $resposta_array_contem_link[0]; // termo encontrado dentro de array de links } else { $termo_encontrado_resposta = false; // termo nao encontrado } // ---------------------------------------------------------------------------------------- // verifica se o link tem o termo de pesquisa ---------------------------- if ($termo_encontrado_resposta == $procurar_ocorrencia_termo) { // link de retorno ---------------------------------------------------------------- $link_retorno = $url_link; // link de retorno // ------------------------------------------------------------------------------------ // parando laco foreach ------------------------------------------------------ break; // parando laco foreach // ------------------------------------------------------------------------------------ } // ---------------------------------------------------------------------------------------- } // ---------------------------------------------------------------------------------------- // retorno com link ---------------------------------------------------------------- return $link_retorno; // retorno com link // ---------------------------------------------------------------------------------------- }
function separa_imagens_busca($imagens_site_geral, $host_site) { global $separador_dados_tabela; // separador de dados em tabela global $numero_maximo_imagens_host_busca_inteligente; // numero maximo de imagens a exibir por host de pesquisa no modo imagens $busca_exata = retorne_busca_exata(); // busca exata $termo_pesquisa = termo_pesquisa_get(); // termo de pesquisa $array_termos_pesquisa = retorne_array_termos_pesquisa($termo_pesquisa); // array com termos de pesquisa $array_imagens = explode($separador_dados_tabela, $imagens_site_geral); // array de dados de imagens $array_imagens = array_unique($array_imagens); // removendo duplicatas $contador = 0; // contador de resultados encontrados if ($busca_exata == 1) { $procurar_ocorrencia_termo = true; // busca exata } else { $procurar_ocorrencia_termo = false; // busca nao exata } foreach ($array_imagens as $url_imagem) { $host_imagem = retorna_host_url($url_imagem); // host de imagem if ($host_imagem == null) { $url_imagem = "http://" . $host_site . "/" . $url_imagem; // completa url de imagem em caso de host nulo } $titulo_imagem = basename($url_imagem); // titulo da imagem if ($host_imagem != null) { $imagem_encontrada .= "<a href='{$url_imagem}' target='_blank'>"; // imagem encontrada $imagem_encontrada .= "<img class='imagem_resposta_busca_inteligente' src='{$url_imagem}' alt='{$titulo_imagem}' title='{$titulo_imagem}'>"; // imagem encontrada $imagem_encontrada .= "</a>"; // imagem encontrada } $titulo_imagem = strtolower($titulo_imagem); // converte titulo de imagem para minusculo $termo_encontrado_resposta = retorne_array_site_contem_termo_pesquisa($array_termos_pesquisa, $url_imagem); // termo encontrado dentro de array de links $termo_encontrado_resposta = $termo_encontrado_resposta[0]; // verifica se encontrou o link da imagem if ($termo_encontrado_resposta == $procurar_ocorrencia_termo) { $imagem_completa .= $imagem_encontrada; // imagem completa $contador++; // atualiza o contador if ($contador >= $numero_maximo_imagens_host_busca_inteligente) { return $imagem_completa; // retorno } } $imagem_encontrada = null; // limpando } return $imagem_completa; // retorno }
function retorna_query_pesquisa($termo_pesquisa) { // globals ------------------------------------------------------------------ global $tamanho_limite_busca_inteligente_query; // este e o tamanho limite na busca query, isto evita uma busca desnecessaria em todo o banco de dados $pagina_numero = pagina_atual_get(); // numero da pagina atual // ------------------------------------------------------------------------------ // tabela --------------------------------------------------------------------- $tabela = retorne_tabela_salvar_site(); // tabela // ------------------------------------------------------------------------------ // pega pagina atual ---------------------------------------------------- $pagina_atual = $pagina_numero; // pega pagina atual // ------------------------------------------------------------------------------ // verifica se pagina atual e valida ---------------------------------- if ($pagina_atual == null or is_numeric($pagina_atual) == false or $pagina_atual < 0) { // zera contadores de pagina ------------------------------------------ $pagina_atual = 0; // zera contadores de pagina $pagina_numero = 0; // zera contadores de pagina // ------------------------------------------------------------------------------ } // ------------------------------------------------------------------------------ // calculando limite de query ------------------------------------------ $query_limite_inicio = $pagina_numero * $tamanho_limite_busca_inteligente_query; // inicio de query $query_limite_fim = $tamanho_limite_busca_inteligente_query; // fim de query // ------------------------------------------------------------------------------ // condicao de limite ------------------------------------------------------ $condicao_limite = "LIMIT {$query_limite_inicio}, {$query_limite_fim}"; // condicao de limite // ------------------------------------------------------------------------------ // array com termos de pesquisa ------------------------------------ $array_termos_pesquisa = retorne_array_termos_pesquisa($termo_pesquisa); // array com termos de pesquisa // ------------------------------------------------------------------------------ // numero de termos de pesquisa ---------------------------------- $numero_termos_pesquisa = count($array_termos_pesquisa); // numero de termos de pesquisa // ------------------------------------------------------------------------------ // contador de termos de pesquisa -------------------------------- $contador_termos_pesquisa = 1; // contador de termos de pesquisa // ------------------------------------------------------------------------------ // campos de pesquisa geral ----------------------------------------- if (retorne_modo_pesquisa() == 1) { // links ------------------------------------------------------------------------ $campos_tabela_pesquisar[0] .= "host_site like '%{$termo_pesquisa}%' "; // campos de pesquisa $campos_tabela_pesquisar[0] .= "or url_pagina like '%{$termo_pesquisa}%' "; // campos de pesquisa $campos_tabela_pesquisar[0] .= "or titulo_site like '%{$termo_pesquisa}%' "; // campos de pesquisa $campos_tabela_pesquisar[0] .= "or keywords_site like '%{$termo_pesquisa}%' "; // campos de pesquisa $campos_tabela_pesquisar[0] .= "or description_site like '%{$termo_pesquisa}%' "; // campos de pesquisa $campos_tabela_pesquisar[0] .= "or links_internos_site like '%{$termo_pesquisa}%' "; // campos de pesquisa $campos_tabela_pesquisar[0] .= "or links_externos_site like '%{$termo_pesquisa}%' "; // campos de pesquisa $campos_tabela_pesquisar[0] .= "or conteudo_site like '%{$termo_pesquisa}%' "; // campos de pesquisa // ------------------------------------------------------------------------------ } else { // imagens ------------------------------------------------------------------ $campos_tabela_pesquisar[0] .= "host_site like '%{$termo_pesquisa}%' "; // campos de pesquisa $campos_tabela_pesquisar[0] .= "or url_pagina like '%{$termo_pesquisa}%' "; // campos de pesquisa $campos_tabela_pesquisar[0] .= "or titulo_site like '%{$termo_pesquisa}%' "; // campos de pesquisa $campos_tabela_pesquisar[0] .= "or keywords_site like '%{$termo_pesquisa}%' "; // campos de pesquisa $campos_tabela_pesquisar[0] .= "or description_site like '%{$termo_pesquisa}%' "; // campos de pesquisa $campos_tabela_pesquisar[0] .= "or imagens_site_geral like '%{$termo_pesquisa}%' "; // campos de pesquisa $campos_tabela_pesquisar[0] .= "or conteudo_site like '%{$termo_pesquisa}%' "; // campos de pesquisa // ------------------------------------------------------------------------------ } // ------------------------------------------------------------------------------ // campos de pesquisa geral ----------------------------------------- if (retorne_modo_pesquisa() == 1) { // links ------------------------------------------------------------------------ $campos_tabela_pesquisar[1] .= "links_internos_site like '%{$termo_pesquisa}%' "; // campos de pesquisa // ------------------------------------------------------------------------------ } else { // imagens ------------------------------------------------------------------ $campos_tabela_pesquisar[1] .= "imagens_site_geral like '%{$termo_pesquisa}%' "; // campos de pesquisa // ------------------------------------------------------------------------------ } // ------------------------------------------------------------------------------ // campos de pesquisa ------------------------------------------------ if ($numero_termos_pesquisa == 1) { // campos de pesquisa ------------------------------------------------ if (retorne_busca_exata() == 1) { // links ------------------------------------------------------------------------ $campos_pesquisa = $campos_tabela_pesquisar[1]; // exata // ------------------------------------------------------------------------------ } else { // imagens ------------------------------------------------------------------ $campos_pesquisa = $campos_tabela_pesquisar[0]; // todos // ------------------------------------------------------------------------------ } // ------------------------------------------------------------------------------ } else { // obtendo termos de pesquisa de array -------------------------- foreach ($array_termos_pesquisa as $termo_pesquisa_array) { // verifica se termo pesquisa possui conteudo ------------------ if ($termo_pesquisa_array != null) { // campos de pesquisa ------------------------------------------------ if (retorne_busca_exata() == 1) { // modo de pesquisa --------------------------------------------------- if (retorne_modo_pesquisa() == 1) { // link -------------------------------------------------- if ($contador_termos_pesquisa == 1) { // atualiza contador ------------------------------- $contador_termos_pesquisa++; // atualiza contador // ------------------------------------------------------- // campos de pesquisa -------------------------- $campos_pesquisa = " links_internos_site like '%{$termo_pesquisa_array}%' "; // campos de pesquisa // ------------------------------------------------------- } else { // campos de pesquisa -------------------------- $campos_pesquisa .= "or links_internos_site like '%{$termo_pesquisa_array}%' "; // campos de pesquisa // ------------------------------------------------------- } // -------------------------------------------------------- } else { // imagem -------------------------------------------- if ($contador_termos_pesquisa == 1) { // atualiza contador ------------------------------- $contador_termos_pesquisa++; // atualiza contador // -------------------------------------------------------- // campos de pesquisa -------------------------- $campos_pesquisa = " imagens_site_geral like '%{$termo_pesquisa_array}%' "; // campos de pesquisa // -------------------------------------------------------- } else { // campos de pesquisa -------------------------- $campos_pesquisa .= "or imagens_site_geral like '%{$termo_pesquisa_array}%' "; // campos de pesquisa // -------------------------------------------------------- } // -------------------------------------------------------- } // -------------------------------------------------------- } else { // modo de pesquisa --------------------------------------------------- if (retorne_modo_pesquisa() == 1) { // aplica une tabelas ------------------------------ if ($contador_termos_pesquisa == 1) { // atualiza contador ------------------------------- $contador_termos_pesquisa++; // atualiza contador // ------------------------------------------------------- // codigo unir tabelas ---------------------------- $une_tabelas = "or "; // codigo unir tabelas // ------------------------------------------------------- } else { // codigo unir tabelas ---------------------------- $une_tabelas = null; // codigo unir tabelas // ------------------------------------------------------- } // -------------------------------------------------------- // campos de pesquisa -------------------------- $campos_pesquisa .= "host_site like '%{$termo_pesquisa_array}%' "; // campos de pesquisa $campos_pesquisa .= "or url_pagina like '%{$termo_pesquisa_array}%' "; // campos de pesquisa $campos_pesquisa .= "or titulo_site like '%{$termo_pesquisa_array}%' "; // campos de pesquisa $campos_pesquisa .= "or keywords_site like '%{$termo_pesquisa_array}%' "; // campos de pesquisa $campos_pesquisa .= "or description_site like '%{$termo_pesquisa_array}%' "; // campos de pesquisa $campos_pesquisa .= "or links_internos_site like '%{$termo_pesquisa_array}%' "; // campos de pesquisa $campos_pesquisa .= "or links_externos_site like '%{$termo_pesquisa_array}%' "; // campos de pesquisa $campos_pesquisa .= "or conteudo_site like '%{$termo_pesquisa_array}%' {$une_tabelas}"; // campos de pesquisa // ------------------------------------------------------- } else { // aplica une tabelas ------------------------------ if ($contador_termos_pesquisa == 1) { // atualiza contador ------------------------------- $contador_termos_pesquisa++; // atualiza contador // ------------------------------------------------------- // codigo unir tabelas ---------------------------- $une_tabelas = "or "; // codigo unir tabelas // ------------------------------------------------------- } else { // codigo unir tabelas ---------------------------- $une_tabelas = null; // codigo unir tabelas // ------------------------------------------------------- } // -------------------------------------------------------- // campos de pesquisa -------------------------- $campos_pesquisa .= "host_site like '%{$termo_pesquisa_array}%' "; // campos de pesquisa $campos_pesquisa .= "or url_pagina like '%{$termo_pesquisa_array}%' "; // campos de pesquisa $campos_pesquisa .= "or titulo_site like '%{$termo_pesquisa_array}%' "; // campos de pesquisa $campos_pesquisa .= "or keywords_site like '%{$termo_pesquisa_array}%' "; // campos de pesquisa $campos_pesquisa .= "or description_site like '%{$termo_pesquisa_array}%' "; // campos de pesquisa $campos_pesquisa .= "or imagens_site_geral like '%{$termo_pesquisa_array}%' "; // campos de pesquisa $campos_pesquisa .= "or conteudo_site like '%{$termo_pesquisa_array}%' {$une_tabelas}"; // campos de pesquisa // -------------------------------------------------------- } // -------------------------------------------------------- } // ------------------------------------------------------------------------------ } // ------------------------------------------------------------------------------ } // ------------------------------------------------------------------------------ } // ------------------------------------------------------------------------------ // querys de retorno ----------------------------------------------------- $querys_retorno[0] = "select *from {$tabela} where {$campos_pesquisa} {$condicao_limite};"; // limite $querys_retorno[1] = "select *from {$tabela} where {$campos_pesquisa};"; // completa // ------------------------------------------------------------------------------ // retorno ------------------------------------------------------------------- return $querys_retorno; // retorno // ------------------------------------------------------------------------------ }
function criar_tags_busca_inteligente() { // globals ------------------------------------------------------------------ $modo_pesquisa = retorne_modo_pesquisa(); // modo de pesquisa global $nome_do_sistema; // nome do sistema // ---------------------------------------------------------------------------- // termo de pesquisa -------------------------------------------------- $termo_pesquisa = termo_pesquisa_get(); // termo de pesquisa // ---------------------------------------------------------------------------- // array com termos de pesquisa ---------------------------------- $array_termos_pesquisa = retorne_array_termos_pesquisa($termo_pesquisa); // array com termos de pesquisa // ---------------------------------------------------------------------------- $lista_retorno_tags = null; // links de retorno com tags de pesquisa // obtendo termos de pesquisa de array ------------------------ foreach ($array_termos_pesquisa as $termo_pesquisa_array) { // url de pesquisa ------------------------------------------------------ $url_termo_pesquisa = "index.php?termo_pesquisa={$termo_pesquisa_array}&modo_pesquisa={$modo_pesquisa}&busca_exata=1"; // url com termo de pesquisa // ---------------------------------------------------------------------------- // atualiza lista de retorno -------------------------------------------- if (strlen($termo_pesquisa_array) > 3) { $lista_retorno_tags .= "<a href='{$url_termo_pesquisa}' title='{$termo_pesquisa_array}' class='btn btn-primary btn-xs'>{$termo_pesquisa_array}</a>"; // atualizando lista $lista_retorno_tags .= " "; // atualizando lista } // ---------------------------------------------------------------------------- } // ---------------------------------------------------------------------------- // div de retorno -------------------------------------------------------- $div_retorno .= ""; // div de retorno $div_retorno .= ""; // div de retorno $div_retorno .= "<div class='div_sugestoes_pesquisa_inteligente'>"; // div de retorno $div_retorno .= ""; // div de retorno $div_retorno .= ""; // div de retorno $div_retorno .= "<font size='5'>"; // div de retorno $div_retorno .= ""; // div de retorno $div_retorno .= "Sugestões de pesquisa do {$nome_do_sistema}"; // div de retorno $div_retorno .= ""; // div de retorno $div_retorno .= "</font>"; // div de retorno $div_retorno .= ""; // div de retorno $div_retorno .= ""; // div de retorno $div_retorno .= "<br>"; // div de retorno $div_retorno .= ""; // div de retorno $div_retorno .= ""; // div de retorno $div_retorno .= "Se você não encontrou o que queria, clique numa das sugestões abaixo."; // div de retorno $div_retorno .= ""; // div de retorno $div_retorno .= ""; // div de retorno $div_retorno .= "<br>"; // div de retorno $div_retorno .= "<br>"; // div de retorno $div_retorno .= ""; // div de retorno $div_retorno .= ""; // div de retorno $div_retorno .= $lista_retorno_tags; // div de retorno $div_retorno .= ""; // div de retorno $div_retorno .= "</div>"; // div de retorno $div_retorno .= ""; // div de retorno $div_retorno .= ""; // div de retorno // ---------------------------------------------------------------------------- // retorno ------------------------------------------------------------------ return $div_retorno; // retorno // ---------------------------------------------------------------------------- }