function retorna_links_endereco_url($codigo_html_site, $endereco_url_site)
{
    // globals ----------------------------------------------------------------
    global $numero_maximo_links_pagina;
    // numero maximo de links por pagina
    // --------------------------------------------------------------------------
    // host principal ------------------------------------------------------
    $host_site = retorna_host_url($endereco_url_site);
    // host do site
    // --------------------------------------------------------------------------
    // array com dados de retorno ----------------------------------
    $array_dados_retorno = array();
    // array com dados de retorno
    $array_dados_buffer = array();
    // dados de array de buffer temporario
    // --------------------------------------------------------------------------
    // dom com objetos do codigo html ----------------------------
    $dom = new domDocument();
    // dom com objetos do codigo html
    // --------------------------------------------------------------------------
    // obtendo codigo html de site ------------------------------------
    @$dom->loadHTML($codigo_html_site);
    // obtendo codigo html de site
    // --------------------------------------------------------------------------
    // representa documento html por completo ----------------
    $dom->preserveWhiteSpace = false;
    // representa documento html por completo
    // --------------------------------------------------------------------------
    // obtendo dom por tag --------------------------------------------
    $endereco_sites = $dom->getElementsByTagName('a');
    // obtendo dom por tag
    // --------------------------------------------------------------------------
    // obtendo links da pagina ----------------------------------------
    foreach ($endereco_sites as $url_link_principal) {
        // endereco url --------------------------------------------------------
        $endereco_url = $url_link_principal->getAttribute('href');
        // endereco url
        // --------------------------------------------------------------------------
        // endereco url normal, sera usado para verificar se a url nao e null
        // ---- usado apenas para comparacao de valor nulo!
        $endereco_url_normal = $url_link_principal->getAttribute('href');
        // endereco url normal
        // --------------------------------------------------------------------------
        // verifica se o link esta completo --------------------------------
        if (retorna_host_url($endereco_url) == null) {
            // adiciona protocolo e host de link ------------------------------
            $endereco_url = "http://{$host_site}" . $endereco_url;
            // completa link
            // ----------------------------------------------------------------------------
        }
        // --------------------------------------------------------------------------
        // titulo do link ----------------------------------------------------------
        $titulo_link = $url_link_principal->childNodes->item(0)->nodeValue;
        // titulo do link
        // --------------------------------------------------------------------------
        // endereco host de url de link --------------------------------------
        $host_url_link = retorna_host_url($endereco_url);
        // endereco host de url de link
        // --------------------------------------------------------------------------
        // puxa links de host diferentes ----------------------------------
        puxa_links_host_diferente($endereco_url_site, $endereco_url, $titulo_link);
        // puxa links de host diferentes
        // ------------------------------------------------------------------------
        // atualiza array de retorno ----------------------------------------
        if (retorne_elemento_array_existe($array_dados_retorno, $endereco_url) == false and $endereco_url_normal != null and $titulo_link != null and $host_site == $host_url_link) {
            // atualizando array com links de pagina ----------------------
            $array_dados_retorno[$endereco_url] = $titulo_link;
            // atualizando array com links de pagina
            // ------------------------------------------------------------------------
        }
        // --------------------------------------------------------------------------
        // tamanho do array --------------------------------------------------
        $tamanho_array = count($array_dados_retorno);
        // tamanho do array
        // --------------------------------------------------------------------------
        // verifica se atingiu o tamanho de alocacao maximo ------
        if ($tamanho_array > $numero_maximo_links_pagina) {
            break;
            // saindo de foreach
        }
        // --------------------------------------------------------------------------
    }
    // --------------------------------------------------------------------------
    // aloca resultados no buffer --------------------------------------
    $array_dados_buffer = $array_dados_retorno;
    // aloca resultados no buffer
    // --------------------------------------------------------------------------
    // varrendo array de buffer ------------------------------------------
    foreach ($array_dados_buffer as $endereco_url_buffer => $titulo_buffer) {
        // urls de url principal ------------------------------------------------
        $sublinks_array = puxar_sublinks($endereco_url_buffer);
        // urls de url principal
        // --------------------------------------------------------------------------
        // obtendo sublinks e atualizando array de retorno --------
        foreach ($sublinks_array as $url_sublink) {
            // titulo de sublink ----------------------------------------------------
            $titulo_sublink = basename($url_sublink);
            // titulo de sublink
            // ------------------------------------------------------------------------
            // endereco host de url de link --------------------------------------
            $host_url_link = retorna_host_url($url_sublink);
            // endereco host de url de link
            // --------------------------------------------------------------------------
            // puxa links de host diferentes ----------------------------------
            puxa_links_host_diferente($endereco_url_site, $url_sublink, $titulo_sublink);
            // puxa links de host diferentes
            // ------------------------------------------------------------------------
            // atualiza array de retorno ----------------------------------------
            if (retorne_elemento_array_existe($array_dados_retorno, $url_sublink) == false and $url_sublink != null and $host_site == $host_url_link) {
                // atualizando array com links de pagina ------------------------
                $array_dados_retorno[$url_sublink] = $titulo_sublink;
                // atualizando array com links de pagina
                // ------------------------------------------------------------------------
            }
            // --------------------------------------------------------------------------
        }
        // --------------------------------------------------------------------------
        // tamanho do array --------------------------------------------------
        $tamanho_array = count($array_dados_retorno);
        // tamanho do array
        // --------------------------------------------------------------------------
        // verifica se atingiu o tamanho de alocacao maximo ------
        if ($tamanho_array > retorne_tamanho_pode_indexar_site()) {
            break;
            // saindo de foreach
        }
        // --------------------------------------------------------------------------
    }
    // --------------------------------------------------------------------------
    // retorno ----------------------------------------------------------------
    return $array_dados_retorno;
    // retorno
    // --------------------------------------------------------------------------
}
function retorna_links_endereco_url($codigo_html_site, $endereco_url_site)
{
    global $numero_maximo_links_pagina;
    // numero maximo de links por pagina
    $host_site = retorna_host_url($endereco_url_site);
    // host do site
    $array_dados_retorno = array();
    // array com dados de retorno
    $array_dados_buffer = array();
    // dados de array de buffer temporario
    $dom = new domDocument();
    // dom com objetos do codigo html
    @$dom->loadHTML($codigo_html_site);
    // obtendo codigo html de site
    $dom->preserveWhiteSpace = false;
    // representa documento html por completo
    $endereco_sites = $dom->getElementsByTagName('a');
    // obtendo dom por tag
    foreach ($endereco_sites as $url_link_principal) {
        $endereco_url = $url_link_principal->getAttribute('href');
        // endereco url
        $endereco_url_normal = $url_link_principal->getAttribute('href');
        // endereco url normal
        if (retorna_host_url($endereco_url) == null) {
            $endereco_url = "http://{$host_site}" . $endereco_url;
            // completa link
        }
        $titulo_link = $url_link_principal->childNodes->item(0)->nodeValue;
        // titulo do link
        $host_url_link = retorna_host_url($endereco_url);
        // endereco host de url de link
        puxa_links_host_diferente($endereco_url_site, $endereco_url, $titulo_link);
        // puxa links de host diferentes
        if (retorne_elemento_array_existe($array_dados_retorno, $endereco_url) == false and $endereco_url_normal != null and $titulo_link != null and $host_site == $host_url_link) {
            $array_dados_retorno[$endereco_url] = $titulo_link;
            // atualizando array com links de pagina
        }
        $tamanho_array = count($array_dados_retorno);
        // tamanho do array
        if ($tamanho_array > $numero_maximo_links_pagina) {
            break;
            // saindo de foreach
        }
    }
    $array_dados_buffer = $array_dados_retorno;
    // aloca resultados no buffer
    foreach ($array_dados_buffer as $endereco_url_buffer => $titulo_buffer) {
        $sublinks_array = puxar_sublinks($endereco_url_buffer);
        // urls de url principal
        foreach ($sublinks_array as $url_sublink) {
            $titulo_sublink = basename($url_sublink);
            // titulo de sublink
            $host_url_link = retorna_host_url($url_sublink);
            // endereco host de url de link
            puxa_links_host_diferente($endereco_url_site, $url_sublink, $titulo_sublink);
            // puxa links de host diferentes
            if (retorne_elemento_array_existe($array_dados_retorno, $url_sublink) == false and $url_sublink != null and $host_site == $host_url_link) {
                $array_dados_retorno[$url_sublink] = $titulo_sublink;
                // atualizando array com links de pagina
            }
        }
        $tamanho_array = count($array_dados_retorno);
        // tamanho do array
        if ($tamanho_array > retorne_tamanho_pode_indexar_site()) {
            break;
            // saindo de foreach
        }
    }
    return $array_dados_retorno;
    // retorno
}
function retorna_imagens_endereco_url($codigo_html_site, $endereco_url_site)
{
    // separador de informacoes ------------------------------------
    global $separador_dados_tabela;
    // separador de informacoes
    global $busca_subimagens_ativada;
    // informa se a busca por subpaginas esta ativada ou desativada
    global $numero_maximo_links_pagina;
    // numero maximo de links por pagina
    // --------------------------------------------------------------------------
    // array com dados de retorno ----------------------------------
    $array_dados_retorno = array();
    // array com dados de retorno
    // --------------------------------------------------------------------------
    // dom com objetos do codigo html ----------------------------
    $dom = new domDocument();
    // dom com objetos do codigo html
    // --------------------------------------------------------------------------
    // obtendo codigo html de site ------------------------------------
    @$dom->loadHTML($codigo_html_site);
    // obtendo codigo html de site
    // --------------------------------------------------------------------------
    // representa documento html por completo ----------------
    $dom->preserveWhiteSpace = false;
    // representa documento html por completo
    // --------------------------------------------------------------------------
    // obtendo dom por tag --------------------------------------------
    $endereco_sites = $dom->getElementsByTagName('img');
    // obtendo dom por tag
    // --------------------------------------------------------------------------
    // obtendo links da pagina ----------------------------------------
    foreach ($endereco_sites as $tag) {
        // obtendo dados de imagem ------------------------------------
        $imagem_url = $tag->getAttribute('src');
        // url de imagem
        $imagem_titulo = $tag->getAttribute('title');
        // titulo de imagem
        $imagem_alt = $tag->getAttribute('title');
        // alt de imagem
        // --------------------------------------------------------------------------
        // atualiza array de dados de imagem primario ----------
        $dados_array_imagem[][0] = $imagem_url . $separador_dados_tabela;
        // url
        $dados_array_imagem[][1] = $imagem_titulo . $separador_dados_tabela;
        // titulo
        $dados_array_imagem[][2] = $imagem_alt . $separador_dados_tabela;
        // alt
        // --------------------------------------------------------------------------
        // verifica se array de dados de imagem tem coneudo -
        if ($imagem_url != null and retorne_elemento_array_existe($array_dados_retorno, $imagem_url) == false) {
            // atualiza array de retorno final --------------------------------
            $array_dados_retorno[] = $dados_array_imagem;
            // atualizando array com links de pagina
            // --------------------------------------------------------------------------
        }
        // --------------------------------------------------------------------------
        // tamanho do array --------------------------------------------------
        $tamanho_array = count($array_dados_retorno);
        // tamanho do array
        // --------------------------------------------------------------------------
        // verifica se atingiu o tamanho de alocacao maximo ------
        if ($tamanho_array > $numero_maximo_links_pagina) {
            break;
            // saindo de foreach
        }
        // --------------------------------------------------------------------------
    }
    // --------------------------------------------------------------------------
    // verifica se o modo de subpaginas esta ativado ----------------------
    if ($busca_subimagens_ativada == true) {
        // array com links de subpaginas --------------------------------
        $links_subpaginas = retorna_links_endereco_url_sem_sublinks($codigo_html_site, $endereco_url_site);
        // --------------------------------------------------------------------------
        // obtendo enderecos de subpaginas --------------------------
        foreach ($links_subpaginas as $url_subpagina => $titulo_subpagina) {
            // dados de subimagens de subpaginas --------------------
            $dados_array_subimagem = puxar_subimagens($url_subpagina);
            // atualiza array de retorno com subimagens
            // --------------------------------------------------------------------------
            // obtendo dados de subimagens ------------------------------
            foreach ($dados_array_subimagem as $url_subimagem => $titulo_subimagem) {
                // atualiza array de dados de imagem primario ----------
                $dados_array_imagem[][0] = $url_subimagem . $separador_dados_tabela;
                // url
                $dados_array_imagem[][1] = $titulo_subimagem . $separador_dados_tabela;
                // titulo
                $dados_array_imagem[][2] = $titulo_subimagem . $separador_dados_tabela;
                // alt
                // --------------------------------------------------------------------------
                // verifica se array de dados de imagem tem coneudo -
                if ($url_subimagem != null) {
                    // atualiza array de retorno final --------------------------------
                    $array_dados_retorno[] = $dados_array_imagem;
                    // atualizando array com links de pagina
                    // --------------------------------------------------------------------------
                }
                // --------------------------------------------------------------------------
                // tamanho do array --------------------------------------------------
                $tamanho_array = count($array_dados_retorno);
                // tamanho do array
                // --------------------------------------------------------------------------
                // verifica se atingiu o tamanho de alocacao maximo ------
                if ($tamanho_array > retorne_tamanho_pode_indexar_site()) {
                    break;
                    // saindo de foreach
                }
                // --------------------------------------------------------------------------
            }
            // --------------------------------------------------------------------------
        }
        // --------------------------------------------------------------------------
    }
    // ----------------------------------------------------------------------------------------
    // retorno ----------------------------------------------------------------
    return $array_dados_retorno;
    // retorno
    // --------------------------------------------------------------------------
}
// conecta ao mysql
// ------------------------------------------------------------------
// conecta ao banco de dados ------------------------------
conecta_banco_dados($nome_banco_novos_sites_indexar);
// conecta ao banco de dados
// ------------------------------------------------------------------
// query ----------------------------------------------------------
$query = "insert into {$nome_prefixo_tabela_novo_host} values('{$site_endereco}');";
// query
// ------------------------------------------------------------------
// numero de linhas ------------------------------------------
$numero_linhas = retorna_numero_novos_hosts_indexar($conexao_mysql_conectar);
// numero de linhas
// ------------------------------------------------------------------
// verifica se o numero de linhas e maior que o permitido ----------
if ($numero_linhas > retorne_tamanho_pode_indexar_site()) {
    echo "A tabela tem hosts demais, escolha outro servidor!";
    die;
    // saindo
}
// --------------------------------------------------------------------------------
// resposta se o host esta cadastrado ----------------------------------
$host_cadastrado_resposta = retorne_host_tabela_indexar_existe($site_endereco);
// resposta se o host esta cadastrado
// --------------------------------------------------------------------------------
// executa comando para salvar ----------------------------
if ($site_endereco_comparar != null and $host_cadastrado_resposta == false) {
    // roda query --------------------------------------------------
    $comando = comando_executa($query);
    // roda query
    // ------------------------------------------------------------------