Link Crawler - problema foreach

Ai o întrebare legată de PHP? Incercăm să îi găsim soluţie. Sau poate doar vrei să publici un cod interesant.

Moderatori: Zamolxe, Moderatori

m0cacin0
New Member
Mesaje: 1
Membru din: Dum Iun 26, 2016 2:57 pm

Link Crawler - problema foreach

Mesajde m0cacin0 » Dum Iun 26, 2016 3:05 pm

Salutare doamnelor si domnilor,

Incerc sa fac un link crawler care gaseste toate linkurile de pe o pagina, le urmeaza si intoarce toate linkurile de pe un website.

Merge ok, insa am o problema: as vrea ca outputu sa fie un array care contine toate linkurile la sfarsitul crawlingului pe tot siteul.

Codul meu arata asa:

Cod: Selectaţi tot

 <?php

$to_crawl = "http://reteteculinare.ro";
$c = array();
$final = array();
$final_r = array();

function get_Links($to_crawl){
   global $c, $final;
   $input = @file_get_contents($to_crawl);
   $base_url = parse_url($to_crawl, PHP_URL_HOST);

   $regexp = '<a\s[^>]*href=(\"??)([^\" >]*?)\\1[^>]*>(.*)<\/a>';
   preg_match_all("/$regexp/siU", $input, $matches);

   $l = $matches[2];

   foreach ($l as $link) {

      if(strpos($link, "#")) {

         $link = substr($link, 0, strpos($link, "#"));

      }

      if(substr($link, 0, 1) == "."){

         $link = substr($link, 1);

      }

      if(substr($link, 0, 7) == "http://"){

         $link = $link;

      } else if (substr($link, 0, 8) == "https://"){

         $link = $link;

      } else if (substr($link, 0, 4) == "www."){

         $link = substr($link, 4);

      } else if (substr($link, 0, 6) == "//wwww."){

         $link = substr($link, 6);

      } else if (substr($link, 0, 2) == "//"){

         $link = substr($link, 2);

      } else if (substr($link, 0, 1) == "#"){

         $link = $to_crawl;

      } else if (substr($link, 0, 7) == "mailto:"){

         $link = "[".$link."]";

      } else {

         if(substr($link, 0, 1) != "/") {

            $link = $base_url."/".$link;

         } else {

            $link = $base_url.$link;

         }

      }

      if(substr($link, 0, 4) == "www."){
            
            $link = substr($link, 4);

      }

      if(substr($link, 0, 7) != "http://" && substr($link, 0, 8) != "https://" && substr($link, 0, 1) != "[") {
         
         $link = "http://".$link;

      }

      if (!in_array($link, $c)) {

         array_push($c, $link);

      }


   }

}

get_links($to_crawl);

foreach ((array)$c as $page) {

   get_links($page);

   foreach ((array)$c as $page) {
   
      if (!in_array($page, $final)) {

         $final[] = $page;

      }

   }
   echo "<pre>";
   print_r($final);
   echo "</pre>";

}



?>


In momentul de fata va returna mai multe arrayuri la care sunt adaugate noile linkuri:

Cod: Selectaţi tot

Array
(
    [0] => http://reteteculinare.ro/autentificare/
    [1] => http://reteteculinare.ro/inregistrare/
    [2] => http://reteteculinare.ro/
    [3] => http://reteteculinare.ro/retete/
    [4] => http://reteteculinare.ro/mixer-ingrediente/
    [5] => http://reteteculinare.ro/reteta_saptamanii/
    [6] => http://reteteculinare.ro/tur/
    [7] => http://reteteculinare.ro/carte_de_bucate/
    [8] => http://reteteculinare.ro/retete-pentru-copii/
    [9] => http://reteteculinare.ro/retete/prajituri/
    [10] => http://reteteculinare.ro/propune_reteta/
    [11] => http://reteteculinare.ro/romanesti/
    [12] => http://reteteculinare.ro/retete-de-paste/
    [13] => http://reteteculinare.ro/retete/cozonac/
    [14] => http://reteteculinare.ro/retete/sarmale/
    [15] => http://reteteculinare.ro/mancare_de_post/
    [16] => http://reteteculinare.ro/retete-vegetariene/
    [17] => http://reteteculinare.ro/mancare_de_post/dulciuri/
    [18] => http://reteteculinare.ro/retete/dulceata/
    [19] => http://reteteculinare.ro/sanatate/
    [20] => http://reteteculinare.ro/ghid_alimente/
    [21] => http://reteteculinare.ro/sanatate/calorii/necesar/
    [22] => http://reteteculinare.ro/sanatate/calorii/calculator/
    [23] => http://reteteculinare.ro/sanatate/calorii/greutate
    [24] => http://reteteculinare.ro/sanatate/calorii/tabel/
    [25] => http://reteteculinare.ro/articole/sanatate/
    [26] => http://restograf.ro/advancedsearch/
    [27] => http://reteteculinare.ro/forum/
    [28] => http://reteteculinare.ro/forum/subiecte/concurs_bucatarul_lunii-31/
    [29] => http://reteteculinare.ro/forum/subiecte/concurs_reteta_lunii-23/
    [30] => http://reteteculinare.ro/forum/subiecte/retete_ilustrate_dulciuri-12/
    [31] => http://reteteculinare.ro/forum/subiecte/retete_ilustrate_mancaruri-13/
    [32] => http://reteteculinare.ro/forum/subiecte/mesaj_de_bun_venit-22/
    [33] => http://reteteculinare.ro/forum/subiecte/zona_libera-21/
    [34] => http://reteteculinare.ro/articole/
    [35] => http://reteteculinare.ro/articole/interviu/
    [36] => http://reteteculinare.ro/articole/diverse/
    [37] => http://reteteculinare.ro/articole/diete/
    [38] => http://reteteculinare.ro/articole/cure_de_slabire/
    [39] => http://reteteculinare.ro/articole/tutoriale/
    [40] => http://reteteculinare.ro/articole/stop_risipei_alimentare/
    [41] => http://reteteculinare.ro/articole/concurs/
    [42] => http://reteteculinare.ro/video/
    [43] => http://reteteculinare.ro/video/etichete/retete/
    [44] => http://reteteculinare.ro/video/etichete/tehnici_culinare/
    [45] => http://reteteculinare.ro/video/etichete/ornamente/
    [46] => http://reteteculinare.ro/bloguri/
    [47] => http://reteteculinare.ro/bloguri/top/
    [48] => http://reteteculinare.ro/bloguri/a-z/
    [49] => http://reteteculinare.ro/bloguri/blogosfera/
    [50] => http://reteteculinare.ro/bloguri/cautare/
    [51] => http://reteteculinare.ro/javascript:void(0);
    [52] => http://reteteculinare.ro/suporter/
    [53] => http://reteteculinare.ro/api/
    [54] => http://reteteculinare.ro/dictionar/
    [55] => http://reteteculinare.ro/facebooklogin/
    [56] => http://reteteculinare.ro/utilizator/anisoara67-13242/
    [57] => http://reteteculinare.ro/reteta_saptamanii/arhiva/
    [58] => http://reteteculinare.ro/carte_de_bucate/borsuri_supe_ciorbe/ciorba-radauteana-ii-4056/
    [59] => http://reteteculinare.ro/carte_de_bucate/aperitive/oua-in-chifle-4771/
    [60] => http://reteteculinare.ro/carte_de_bucate/borsuri_supe_ciorbe/ciorba-de-dovlecei-5207/
    [61] => http://reteteculinare.ro/carte_de_bucate/produse_de_panificatie_si_patiserie/papanasi-cu-smantana-si-dulceata-de-afine-7571/
    [62] => http://reteteculinare.ro/carte_de_bucate/mancaruri_cu_carne/taci-si-inghite-9926/
    [63] => http://reteteculinare.ro/carte_de_bucate/aperitive/alivanca-9941/
    [64] => http://reteteculinare.ro/carte_de_bucate/aperitive/
    [65] => http://reteteculinare.ro/carte_de_bucate/bauturi/
    [66] => http://reteteculinare.ro/carte_de_bucate/borsuri_supe_ciorbe/
    [67] => http://reteteculinare.ro/carte_de_bucate/conserve_muraturi/
    [68] => http://reteteculinare.ro/carte_de_bucate/dulciuri/
    [69] => http://reteteculinare.ro/carte_de_bucate/fripturi/
    [70] => http://reteteculinare.ro/carte_de_bucate/garnituri/
    [71] => http://reteteculinare.ro/carte_de_bucate/mancaruri_cu_carne/
    [72] => http://reteteculinare.ro/carte_de_bucate/mancaruri_cu_legume_si_zarzavaturi/
    [73] => http://reteteculinare.ro/carte_de_bucate/mancaruri_cu_peste/
    [74] => http://reteteculinare.ro/carte_de_bucate/paste/
    [75] => http://reteteculinare.ro/carte_de_bucate/produse_de_panificatie_si_patiserie/
    [76] => http://reteteculinare.ro/carte_de_bucate/salate/
    [77] => http://reteteculinare.ro/carte_de_bucate/sosuri/
    [78] => http://reteteculinare.ro/carte_de_bucate/slow_cooking/
    [79] => http://reteteculinare.ro/carte_de_bucate/love_smoothies/
    [80] => http://reteteculinare.ro/articole/dublu-concurs-bucatarul-lunii-si-reteta-lunii-iunie/
    [81] => http://reteteculinare.ro/video/aperol-spritz/
    [82] => http://reteteculinare.ro/sanatate/calorii/greutate/
    [83] => http://reteteculinare.ro/contact/
    [84] => http://reteteculinare.ro/despre_noi/
    [85] => http://reteteculinare.ro/utilizator/andraconstantinescu-33560/
    [86] => http://reteteculinare.ro/utilizator/mirela0911-33293/
    [87] => http://reteteculinare.ro/carte_de_bucate/borsuri_supe_ciorbe/ciorba-falsa-de-burta-2347/
    [88] => http://reteteculinare.ro/carte_de_bucate/mancaruri_cu_carne/chiftele-de-ficat-cu-sos-7325/
    [89] => http://reteteculinare.ro/carte_de_bucate/dulciuri/prajitura-insiropata-de-post-3377/
    [90] => http://reteteculinare.ro/retete/capsuni
    [91] => http://reteteculinare.ro/retete/cartofi
    [92] => http://reteteculinare.ro/retete/chec
    [93] => http://reteteculinare.ro/retete/chiftele
    [94] => http://reteteculinare.ro/retete/ciocolata
    [95] => http://reteteculinare.ro/retete/ciorbe
    [96] => http://reteteculinare.ro/retete/ciuperci
    [97] => http://reteteculinare.ro/retete/fasole
    [98] => http://reteteculinare.ro/retete/fructe
    [99] => http://reteteculinare.ro/retete/inghetata
    [100] => http://reteteculinare.ro/retete/nuca
    [101] => http://reteteculinare.ro/retete/orez
    [102] => http://reteteculinare.ro/retete/paine
    [103] => http://reteteculinare.ro/retete/placinte
    [104] => http://reteteculinare.ro/retete/prajituri
    [105] => http://reteteculinare.ro/retete/pui
    [106] => http://reteteculinare.ro/retete/rulada
    [107] => http://reteteculinare.ro/retete/salate
    [108] => http://reteteculinare.ro/retete/supe
    [109] => http://reteteculinare.ro/retete/tarta
    [110] => http://reteteculinare.ro/retete/tort
    [111] => http://reteteculinare.ro/retete/vita
    [112] => http://pinterest.com/source/reteteculinare.ro/
    [113] => http://twitter.com/retetero
    [114] => http://reteteculinare.ro/newsletter/
    [115] => http://reteteculinare.ro/carte_de_bucate/borsuri_supe_ciorbe/supa-picanta-cu-dovlecel-si-ciuperci-10376/
    [116] => http://reteteculinare.ro/carte_de_bucate/dulciuri/prajitura-cu-capsuni-si-cirese-10375/
    [117] => http://reteteculinare.ro/carte_de_bucate/borsuri_supe_ciorbe/luscos-ardelenesc-10374/
    [118] => http://reteteculinare.ro/carte_de_bucate/borsuri_supe_ciorbe/ciorba-de-salata-verde-10377/
    [119] => http://reteteculinare.ro/carte_de_bucate/borsuri_supe_ciorbe/bors-de-sfecla-rosie-10366/
    [120] => http://reteteculinare.ro/carte_de_bucate/fripturi/confit-de-rata-10367/
    [121] => http://reteteculinare.ro/carte_de_bucate/mancaruri_cu_peste/peste-merlucius-cu-pesmet-la-tigaie-10362/
    [122] => http://reteteculinare.ro/carte_de_bucate/fripturi/copanele-de-pui-cu-cartofi-noi-la-cuptor-10360/
    [123] => http://reteteculinare.ro/carte_de_bucate/dulciuri/prajitura-cu-iaurt-si-caise-10359/
    [124] => http://reteteculinare.ro/carte_de_bucate/mancaruri_cu_carne/tocanita-de-vitel-10363/
    [125] => http://reteteculinare.ro/carte_de_bucate/rss.xml
    [126] => http://reteteculinare.ro/forum/discutii/tarta_cu_ciocolata_si_capsuni-14615/
    [127] => http://reteteculinare.ro/forum/discutii/ciorba_de_pui_cu_taietei_de_casa-14614/
    [128] => http://reteteculinare.ro/forum/discutii/peste_merlucius_cu_pesmet_la_tigaie-14584/
    [129] => http://reteteculinare.ro/forum/discutii/tarta_cu_zmeura_si_crema_aerata-14595/
    [130] => http://reteteculinare.ro/forum/discutii/paste_cu_sos_aromat_de_rosii_si_friptura_de_vitel-14613/
    [131] => http://reteteculinare.ro/forum/discutii/ciorba_de_pui_cu_legume-14611/
    [132] => http://reteteculinare.ro/forum/rss.xml
    [133] => http://reteteculinare.ro/restaurante/din-bucuresti/italian/restaurant-da-mario-1068/
    [134] => http://reteteculinare.ro/restaurante/din-bucuresti/
    [135] => http://reteteculinare.ro/restaurante/din-iasi/international/toujours-1067/
    [136] => http://reteteculinare.ro/restaurante/din-iasi/
    [137] => http://reteteculinare.ro/restaurante/din-botosani/romanesc/conacul-zaicesti-1066/
    [138] => http://reteteculinare.ro/restaurante/din-botosani/
    [139] => http://reteteculinare.ro/restaurante/din-constanta/international/new-pizzico-1065/
    [140] => http://reteteculinare.ro/restaurante/din-constanta/
    [141] => http://reteteculinare.ro/restaurante/din-bucuresti/international/babel-1063/
    [142] => http://reteteculinare.ro/restaurante/din-cluj/romanesc/livada-restaurant-cu-gradina-1062/
    [143] => http://reteteculinare.ro/restaurante/din-cluj/
    [144] => http://reteteculinare.ro/restaurante/din-constanta/international/rovas-1061/
    [145] => http://reteteculinare.ro/restaurante/din-bucuresti/international/la-pescador-1060/
    [146] => http://reteteculinare.ro/restaurante/din-cluj/italian/capriccio-bistro-1058/
    [147] => http://reteteculinare.ro/restaurante/din-valcea/romanesc/restaurante-4people-1057/
    [148] => http://reteteculinare.ro/restaurante/din-valcea/
    [149] => http://reteteculinare.ro/restaurante/rss.xml
    [150] => http://reteteculinare.ro/publicitate/
    [151] => http://reteteculinare.ro/ajutor/
    [152] => http://reteteculinare.ro/referinte_legale/
    [153] => http://reteteculinare.ro/termeni_utilizare/
    [154] => http://reteteculinare.ro/regulament_galbeni/
    [155] => http://reteteculinare.ro/harta_site/
    [156] => http://brat.ro/sati/site/reteteculinare-ro/trafic-total/
    [157] => http://reteteculinare.ro/_ajax/newsletter_popup.php
    [158] => http://reteteculinare.ro/profile.php?mode=sendpassword
)
Array
(
    [0] => http://reteteculinare.ro/autentificare/
    [1] => http://reteteculinare.ro/inregistrare/
    [2] => http://reteteculinare.ro/
    [3] => http://reteteculinare.ro/retete/
    [4] => http://reteteculinare.ro/mixer-ingrediente/
    [5] => http://reteteculinare.ro/reteta_saptamanii/
    [6] => http://reteteculinare.ro/tur/
    [7] => http://reteteculinare.ro/carte_de_bucate/
    [8] => http://reteteculinare.ro/retete-pentru-copii/
    [9] => http://reteteculinare.ro/retete/prajituri/
    [10] => http://reteteculinare.ro/propune_reteta/
    [11] => http://reteteculinare.ro/romanesti/
    [12] => http://reteteculinare.ro/retete-de-paste/
    [13] => http://reteteculinare.ro/retete/cozonac/
    [14] => http://reteteculinare.ro/retete/sarmale/
    [15] => http://reteteculinare.ro/mancare_de_post/
    [16] => http://reteteculinare.ro/retete-vegetariene/
    [17] => http://reteteculinare.ro/mancare_de_post/dulciuri/
    [18] => http://reteteculinare.ro/retete/dulceata/
    [19] => http://reteteculinare.ro/sanatate/
    [20] => http://reteteculinare.ro/ghid_alimente/
    [21] => http://reteteculinare.ro/sanatate/calorii/necesar/
    [22] => http://reteteculinare.ro/sanatate/calorii/calculator/
    [23] => http://reteteculinare.ro/sanatate/calorii/greutate
    [24] => http://reteteculinare.ro/sanatate/calorii/tabel/
    [25] => http://reteteculinare.ro/articole/sanatate/
    [26] => http://restograf.ro/advancedsearch/
    [27] => http://reteteculinare.ro/forum/
    [28] => http://reteteculinare.ro/forum/subiecte/concurs_bucatarul_lunii-31/
    [29] => http://reteteculinare.ro/forum/subiecte/concurs_reteta_lunii-23/
    [30] => http://reteteculinare.ro/forum/subiecte/retete_ilustrate_dulciuri-12/
    [31] => http://reteteculinare.ro/forum/subiecte/retete_ilustrate_mancaruri-13/
    [32] => http://reteteculinare.ro/forum/subiecte/mesaj_de_bun_venit-22/
    [33] => http://reteteculinare.ro/forum/subiecte/zona_libera-21/
    [34] => http://reteteculinare.ro/articole/
    [35] => http://reteteculinare.ro/articole/interviu/
    [36] => http://reteteculinare.ro/articole/diverse/
    [37] => http://reteteculinare.ro/articole/diete/
    [38] => http://reteteculinare.ro/articole/cure_de_slabire/
    [39] => http://reteteculinare.ro/articole/tutoriale/
    [40] => http://reteteculinare.ro/articole/stop_risipei_alimentare/
    [41] => http://reteteculinare.ro/articole/concurs/
    [42] => http://reteteculinare.ro/video/
    [43] => http://reteteculinare.ro/video/etichete/retete/
    [44] => http://reteteculinare.ro/video/etichete/tehnici_culinare/
    [45] => http://reteteculinare.ro/video/etichete/ornamente/
    [46] => http://reteteculinare.ro/bloguri/
    [47] => http://reteteculinare.ro/bloguri/top/
    [48] => http://reteteculinare.ro/bloguri/a-z/
    [49] => http://reteteculinare.ro/bloguri/blogosfera/
    [50] => http://reteteculinare.ro/bloguri/cautare/
    [51] => http://reteteculinare.ro/javascript:void(0);
    [52] => http://reteteculinare.ro/suporter/
    [53] => http://reteteculinare.ro/api/
    [54] => http://reteteculinare.ro/dictionar/
    [55] => http://reteteculinare.ro/facebooklogin/
    [56] => http://reteteculinare.ro/utilizator/anisoara67-13242/
    [57] => http://reteteculinare.ro/reteta_saptamanii/arhiva/
    [58] => http://reteteculinare.ro/carte_de_bucate/borsuri_supe_ciorbe/ciorba-radauteana-ii-4056/
    [59] => http://reteteculinare.ro/carte_de_bucate/aperitive/oua-in-chifle-4771/
    [60] => http://reteteculinare.ro/carte_de_bucate/borsuri_supe_ciorbe/ciorba-de-dovlecei-5207/
    [61] => http://reteteculinare.ro/carte_de_bucate/produse_de_panificatie_si_patiserie/papanasi-cu-smantana-si-dulceata-de-afine-7571/
    [62] => http://reteteculinare.ro/carte_de_bucate/mancaruri_cu_carne/taci-si-inghite-9926/
    [63] => http://reteteculinare.ro/carte_de_bucate/aperitive/alivanca-9941/
    [64] => http://reteteculinare.ro/carte_de_bucate/aperitive/
    [65] => http://reteteculinare.ro/carte_de_bucate/bauturi/
    [66] => http://reteteculinare.ro/carte_de_bucate/borsuri_supe_ciorbe/
    [67] => http://reteteculinare.ro/carte_de_bucate/conserve_muraturi/
    [68] => http://reteteculinare.ro/carte_de_bucate/dulciuri/
    [69] => http://reteteculinare.ro/carte_de_bucate/fripturi/
    [70] => http://reteteculinare.ro/carte_de_bucate/garnituri/
    [71] => http://reteteculinare.ro/carte_de_bucate/mancaruri_cu_carne/
    [72] => http://reteteculinare.ro/carte_de_bucate/mancaruri_cu_legume_si_zarzavaturi/
    [73] => http://reteteculinare.ro/carte_de_bucate/mancaruri_cu_peste/
    [74] => http://reteteculinare.ro/carte_de_bucate/paste/
    [75] => http://reteteculinare.ro/carte_de_bucate/produse_de_panificatie_si_patiserie/
    [76] => http://reteteculinare.ro/carte_de_bucate/salate/
    [77] => http://reteteculinare.ro/carte_de_bucate/sosuri/
    [78] => http://reteteculinare.ro/carte_de_bucate/slow_cooking/
    [79] => http://reteteculinare.ro/carte_de_bucate/love_smoothies/
    [80] => http://reteteculinare.ro/articole/dublu-concurs-bucatarul-lunii-si-reteta-lunii-iunie/
    [81] => http://reteteculinare.ro/video/aperol-spritz/
    [82] => http://reteteculinare.ro/sanatate/calorii/greutate/
    [83] => http://reteteculinare.ro/contact/
    [84] => http://reteteculinare.ro/despre_noi/
    [85] => http://reteteculinare.ro/utilizator/andraconstantinescu-33560/
    [86] => http://reteteculinare.ro/utilizator/mirela0911-33293/
    [87] => http://reteteculinare.ro/carte_de_bucate/borsuri_supe_ciorbe/ciorba-falsa-de-burta-2347/
    [88] => http://reteteculinare.ro/carte_de_bucate/mancaruri_cu_carne/chiftele-de-ficat-cu-sos-7325/
    [89] => http://reteteculinare.ro/carte_de_bucate/dulciuri/prajitura-insiropata-de-post-3377/
    [90] => http://reteteculinare.ro/retete/capsuni
    [91] => http://reteteculinare.ro/retete/cartofi
    [92] => http://reteteculinare.ro/retete/chec
    [93] => http://reteteculinare.ro/retete/chiftele
    [94] => http://reteteculinare.ro/retete/ciocolata
    [95] => http://reteteculinare.ro/retete/ciorbe
    [96] => http://reteteculinare.ro/retete/ciuperci
    [97] => http://reteteculinare.ro/retete/fasole
    [98] => http://reteteculinare.ro/retete/fructe
    [99] => http://reteteculinare.ro/retete/inghetata
    [100] => http://reteteculinare.ro/retete/nuca
    [101] => http://reteteculinare.ro/retete/orez
    [102] => http://reteteculinare.ro/retete/paine
    [103] => http://reteteculinare.ro/retete/placinte
    [104] => http://reteteculinare.ro/retete/prajituri
    [105] => http://reteteculinare.ro/retete/pui
    [106] => http://reteteculinare.ro/retete/rulada
    [107] => http://reteteculinare.ro/retete/salate
    [108] => http://reteteculinare.ro/retete/supe
    [109] => http://reteteculinare.ro/retete/tarta
    [110] => http://reteteculinare.ro/retete/tort
    [111] => http://reteteculinare.ro/retete/vita
    [112] => http://pinterest.com/source/reteteculinare.ro/
    [113] => http://twitter.com/retetero
    [114] => http://reteteculinare.ro/newsletter/
    [115] => http://reteteculinare.ro/carte_de_bucate/borsuri_supe_ciorbe/supa-picanta-cu-dovlecel-si-ciuperci-10376/
    [116] => http://reteteculinare.ro/carte_de_bucate/dulciuri/prajitura-cu-capsuni-si-cirese-10375/
    [117] => http://reteteculinare.ro/carte_de_bucate/borsuri_supe_ciorbe/luscos-ardelenesc-10374/
    [118] => http://reteteculinare.ro/carte_de_bucate/borsuri_supe_ciorbe/ciorba-de-salata-verde-10377/
    [119] => http://reteteculinare.ro/carte_de_bucate/borsuri_supe_ciorbe/bors-de-sfecla-rosie-10366/
    [120] => http://reteteculinare.ro/carte_de_bucate/fripturi/confit-de-rata-10367/
    [121] => http://reteteculinare.ro/carte_de_bucate/mancaruri_cu_peste/peste-merlucius-cu-pesmet-la-tigaie-10362/
    [122] => http://reteteculinare.ro/carte_de_bucate/fripturi/copanele-de-pui-cu-cartofi-noi-la-cuptor-10360/
    [123] => http://reteteculinare.ro/carte_de_bucate/dulciuri/prajitura-cu-iaurt-si-caise-10359/
    [124] => http://reteteculinare.ro/carte_de_bucate/mancaruri_cu_carne/tocanita-de-vitel-10363/
    [125] => http://reteteculinare.ro/carte_de_bucate/rss.xml
    [126] => http://reteteculinare.ro/forum/discutii/tarta_cu_ciocolata_si_capsuni-14615/
    [127] => http://reteteculinare.ro/forum/discutii/ciorba_de_pui_cu_taietei_de_casa-14614/
    [128] => http://reteteculinare.ro/forum/discutii/peste_merlucius_cu_pesmet_la_tigaie-14584/
    [129] => http://reteteculinare.ro/forum/discutii/tarta_cu_zmeura_si_crema_aerata-14595/
    [130] => http://reteteculinare.ro/forum/discutii/paste_cu_sos_aromat_de_rosii_si_friptura_de_vitel-14613/
    [131] => http://reteteculinare.ro/forum/discutii/ciorba_de_pui_cu_legume-14611/
    [132] => http://reteteculinare.ro/forum/rss.xml
    [133] => http://reteteculinare.ro/restaurante/din-bucuresti/italian/restaurant-da-mario-1068/
    [134] => http://reteteculinare.ro/restaurante/din-bucuresti/
    [135] => http://reteteculinare.ro/restaurante/din-iasi/international/toujours-1067/
    [136] => http://reteteculinare.ro/restaurante/din-iasi/
    [137] => http://reteteculinare.ro/restaurante/din-botosani/romanesc/conacul-zaicesti-1066/
    [138] => http://reteteculinare.ro/restaurante/din-botosani/
    [139] => http://reteteculinare.ro/restaurante/din-constanta/international/new-pizzico-1065/
    [140] => http://reteteculinare.ro/restaurante/din-constanta/
    [141] => http://reteteculinare.ro/restaurante/din-bucuresti/international/babel-1063/
    [142] => http://reteteculinare.ro/restaurante/din-cluj/romanesc/livada-restaurant-cu-gradina-1062/
    [143] => http://reteteculinare.ro/restaurante/din-cluj/
    [144] => http://reteteculinare.ro/restaurante/din-constanta/international/rovas-1061/
    [145] => http://reteteculinare.ro/restaurante/din-bucuresti/international/la-pescador-1060/
    [146] => http://reteteculinare.ro/restaurante/din-cluj/italian/capriccio-bistro-1058/
    [147] => http://reteteculinare.ro/restaurante/din-valcea/romanesc/restaurante-4people-1057/
    [148] => http://reteteculinare.ro/restaurante/din-valcea/
    [149] => http://reteteculinare.ro/restaurante/rss.xml
    [150] => http://reteteculinare.ro/publicitate/
    [151] => http://reteteculinare.ro/ajutor/
    [152] => http://reteteculinare.ro/referinte_legale/
    [153] => http://reteteculinare.ro/termeni_utilizare/
    [154] => http://reteteculinare.ro/regulament_galbeni/
    [155] => http://reteteculinare.ro/harta_site/
    [156] => http://brat.ro/sati/site/reteteculinare-ro/trafic-total/
    [157] => http://reteteculinare.ro/_ajax/newsletter_popup.php
    [158] => http://reteteculinare.ro/profile.php?mode=sendpassword
    [159] => http://reteteculinare.ro/inregistrare/facebook/
)
...


Am incercat sa pun printul dupa ce se termina primul foreach si nu imi returneaza nimic.

Ce gresesc, sunt mega noob, probabil ati inteles asta dupa cod, dar chiar nu inteleg, cum pot face sa printez doar ultimul array care contine toate linkurile?

Orice sfat idee este aprciata.

Va doresc o zi frumoasa.



nevvermind
Senior Member
Mesaje: 1242
Membru din: Mar Iun 22, 2010 3:17 pm

Re: Link Crawler - problema foreach

Mesajde nevvermind » Dum Iun 26, 2016 10:07 pm

Alt crawler... Serios, nimeni nu mai stie sa faca altceva? Nu pot sa-mi dau seama de unde a inceput moda asta.

Incingi serverele site-ului aluia pentru nimic. Iti dai seama cat interes am sa te ajut...

Te auto-declari "mega noob", dar asta nu te-a oprit sa folosesti expresii regulate, operatorul @, file_get_contents pe un URL, etc., lucruri care nu cred ca le-ar face un incepator. Am sa presupun ca ai dat copy-paste, sa-ti creezi mega-aplicatia ta de ciordit texte pe net, dar acum, cand tre sa pui veioza la contributie, chiar si la o problema atat de simpla, te-ai inglodat.

Dar hai sa zicem ca n-ai facut asta. E simplu:

Cod: Selectaţi tot

function get_links_from_page($url) {

    $rezultatCaArray = [];

    // umple $rezultatCaArray cu linkuri

    return $rezultatCaArray;
}

$links = [];

foreach ($urls as $url) {
    $links = array_merge($links, get_links_from_page($url));
}

var_dump($links);
Facusi un canal de php pe freenode - ##php-ro : https://webchat.freenode.net/

Avatar utilizator
ispas
Senior Member
Mesaje: 654
Membru din: Mar Sep 14, 2010 1:35 pm
Localitate: Craiova
Contact:

Re: Link Crawler - problema foreach

Mesajde ispas » Lun Iul 18, 2016 10:03 pm

De ce te complici, cand exista Dom?
http://php.net/manual/en/book.dom.php

GeorgeValentin
PHPRomania Supporter
Mesaje: 16
Membru din: Mie Aug 03, 2016 11:33 pm

Re: Link Crawler - problema foreach

Mesajde GeorgeValentin » Vin Aug 05, 2016 11:28 am

nevvermind scrie:Alt crawler... Serios, nimeni nu mai stie sa faca altceva? Nu pot sa-mi dau seama de unde a inceput moda asta.


candva cu crawlerele faceai o groaza de bani, dar acum google isi permite sa baneze foarte rapid un site cu continut copiat.


Înapoi la “Cod PHP”

Cine este conectat

Utilizatori ce ce navighează pe acest forum: Niciun utilizator înregistrat și 3 vizitatori