Giihh 6 Denunciar post Postado Outubro 26, 2016 Olá esse é meu código: $url = file_get_contents('http://www.estadao.com.br/'); preg_match_all('/\b(?:(?:https?|http):\/\/|www\.)[-a-z]*.com.br/i', $url, $conteudo); print_r($conteudo); Ele basicamente filtra todas urls ".com.br" o resultado é esse: Array ( [0] => Array ( [0] => www.estadao.com.br [1] => www.assineestadao.com.br [2] => www.assineestadao.com.br [3] => www.estadao.com.br [4] => www.estadao.com.br [5] => www.estadao.com.br [6] => www.assineestadao.com.br [7] => www.estadao.com.br [8] => www.estadao.com.br [9] => www.assineestadao.com.br [10] => www.estadao.com.br [11] => www.estadao.com.br [12] => www.estadao.com.br [13] => www.classificadosestadao.com.br [14] => www.estadao.com.br [15] => www.estadao.com.br [16] => www.estadao.com.br [17] => www.estadao.com.br [18] => www.estadao.com.br [19] => www.estadao.com.br [20] => www.estadao.com.br [21] => www.estadao.com.br [22] => www.ilocal.com.br [23] => www.broadcastpolitico.com.br [24] => www.estadao.com.br [25] => www.estadao.com.br [26] => www.estadao.com.br [27] => www.assineestadao.com.br [28] => www.estadao.com.br [29] => www.estadao.com.br [30] => www.estadao.com.br [31] => www.estadao.com.br [32] => www.estadao.com.br [33] => www.estadao.com.br [34] => www.estadao.com.br [35] => www.estadao.com.br [36] => www.estadao.com.br [37] => www.estadao.com.br [38] => www.estadao.com.br [39] => www.estadao.com.br [40] => www.estadao.com.br [41] => www.estadao.com.br [42] => www.estadao.com.br [43] => www.estadao.com.br [44] => www.estadao.com.br [45] => www.estadao.com.br [46] => www.estadao.com.br [47] => www.estadao.com.br [48] => www.estadao.com.br [49] => www.estadao.com.br [50] => www.broadcastpolitico.com.br [51] => www.estadao.com.br [52] => www.estadao.com.br [53] => www.estadao.com.br [54] => www.ilocal.com.br [55] => www.estadao.com.br ) ) Como faço para não retornar urls duplicadas? Agradeço ajuda Compartilhar este post Link para o post Compartilhar em outros sites
Giihh 6 Denunciar post Postado Outubro 26, 2016 Tentei usar a função flip array mas não deu certo Compartilhar este post Link para o post Compartilhar em outros sites
Elemke 3 Denunciar post Postado Outubro 26, 2016 http://php.net/manual/pt_BR/function.array-unique.php Compartilhar este post Link para o post Compartilhar em outros sites
Giihh 6 Denunciar post Postado Outubro 26, 2016 http://php.net/manual/pt_BR/function.array-unique.php Obrigada @Elemke, tbm tentei o resultado foi o mesmo Compartilhar este post Link para o post Compartilhar em outros sites
sousatg 9 Denunciar post Postado Outubro 26, 2016 Obrigada @Elemke, tbm tentei o resultado foi o mesmo Provavelmente não resultou porque você aplicou a função a variável "$conteudo" que se reparar é um array de um elemento e esse único elemento é o seu array com os urls. Para ordenar a lista você tem que fazer: $conteudo[0] = array_unique( $conteudo[0] ); Se quiser que conteudo seja apenas um array de strings em vez de um array com um array lá dentro: $conteudo = array_unique( $conteudo[0]); Compartilhar este post Link para o post Compartilhar em outros sites
Guilherme Luiz 41 Denunciar post Postado Outubro 26, 2016 Se você fizer exatamente que o sousatg lhe explicou você terá o seguinte retorno Warning: array_unique() expects parameter 1 to be array, string given Isso é claro me baseando no seguinte modelo: <?php $conteudo = array("guilherme"); $conteudo[0] = array_unique($conteudo[0]); echo $conteudo; ?> Pelo que tenho claro do array_unique, você tem que passar sempre um array "por inteiro" e não apenas um indice ou uma variavel que não seja um array. Depois para imprimir os seus resultados, ai sim você pega separado por índice ou coloca num loop para imprimir todos os índices ÚNICOS/SEM REPETIÇÃO do array. <?php $conteudo = array("guilherme","guilherme","luiz","luiz","silva","silva"); $unico = array_unique($conteudo); print_r($unico); ?> Dessa forma eu terei a seguinte saida: Array ( [0] => guilherme [2] => luiz [4] => silva ) Compartilhar este post Link para o post Compartilhar em outros sites
Giihh 6 Denunciar post Postado Outubro 26, 2016 Obrigada a todos pela resposta: Se quiser que conteudo seja apenas um array de strings em vez de um array com um array lá dentro: $conteudo = array_unique( $conteudo[0]); Transformar em apenas um array de strings resolveu Compartilhar este post Link para o post Compartilhar em outros sites