Witajcie,

Mam parser, który potrafi ze wskazanego adresu pobrać dane rekurencyjnie.
Podaję mu link typu http://www.stronka.pl/szczecin/sights_baths/ i on pięknie dla jednego miasta wyciąga dane

Chcałbym tak przerobić parser, żeby z zewnętrznego pliku pobierał po kolei kolejne miasta [zapisane rozdzielając je przecinkami - plik txt, wszystko w jednej linii] stosując tą samą metodykę jak poniższy kod. Zapis odbywać ma się tak jak tudo jednego pliku, ale od razu dla wszystkich miast z zewnętrznego pliku.

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pl" lang="pl"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /></head><body>
  3.  
  4. <?php
  5.  
  6. // sprawdzenie czy jest to pierwsze wywolanie strony, czy tez wywolanie do przetwarzania podanej strony
  7. if(isset($_POST["url"]))
  8. {
  9.  
  10.  
  11.  
  12. // poprawienie podanego adresu URL (dopisanie http:// oraz znaku / na koncu, jesli ich nie bylo)
  13. // oraz przygotowanie nazwy pliku i otwarcie pliku do zapisu
  14. $xml_url = $_POST["url"];
  15. if ( substr_compare($xml_url, '/', -1, 1) != 0 ) $xml_url = $xml_url.'/';
  16. $start1 = strpos($xml_url,'stronka.pl/')+11;
  17. $start2 = strpos($xml_url,'/',$start1);
  18. $plik_miasto = substr($xml_url, $start1, $start2-$start1);
  19. $plik_dzial = substr($xml_url, $start2+1, -1);
  20. if (strpos($xml_url, "http")!==0) $xml_url = 'http://'.$xml_url;
  21. $xml_url = $xml_url.'places.xml';
  22. $plik=fopen($plik_miasto.'-'.$plik_dzial.'.csv',"w");
  23. $crlf = "\r\n";
  24. fwrite($plik, 'TYTUL, KROTKI OPIS, MIASTO, KOD POCZTOWY, ADRES, TELEFON, STRONA WWW, EMAIL'.$crlf);
  25.  
  26.  
  27.  
  28. // pobranie pliku XML oraz przetwarzanie jego zawartosci w petli foreach
  29. $xml_string = file_get_contents($xml_url);
  30. $xmlDoc = new DOMDocument();
  31. $xmlDoc->loadXML($xml_string);
  32. $xml = $xmlDoc->documentElement;
  33.  
  34. foreach ($xml->childNodes AS $node)
  35. {
  36.  
  37. if ($node->nodeName=='schmap:Place')
  38. {
  39.  
  40. $tytul = ''; $url = ''; $krotki_opis = ''; $telefon = '';
  41. $miasto = ''; $kod_pocztowy = ''; $adres = ''; $email = '';
  42.  
  43. foreach ($node->childNodes AS $item)
  44. {
  45.  
  46. if ($item->nodeName=='dc:title') $tytul = $item->nodeValue;
  47. if ($item->nodeName=='vcard:URL') $url = $item->nodeValue;
  48. if ($item->nodeName=='dc:description') $krotki_opis = $item->nodeValue;
  49.  
  50. if ($item->nodeName=='vcard:TEL')
  51. foreach ($item->childNodes AS $dane_telefon)
  52. if ($dane_telefon->nodeName=='rdf:value')
  53. if ( strlen($dane_telefon->nodeValue) > 0 )
  54. $telefon = $dane_telefon->nodeValue;
  55.  
  56. if ($item->nodeName=='vcard:ADR')
  57. foreach ($item->childNodes AS $dane_adresowe)
  58. {
  59. if ($dane_adresowe->nodeName=='vcard:Locality') $miasto = $dane_adresowe->nodeValue;
  60. if ($dane_adresowe->nodeName=='vcard:Pcode') $kod_pocztowy = $dane_adresowe->nodeValue;
  61. if ($dane_adresowe->nodeName=='vcard:Street') $adres = $dane_adresowe->nodeValue;
  62. }
  63.  
  64. if ($item->nodeName=='vcard:EMAIL') if ( strlen($item->nodeValue) > 0 ) $email = $item->nodeValue;
  65.  
  66. } // koniec FOREACH
  67.  
  68.  
  69. $tytul = str_replace('"','""',$tytul);
  70. $krotki_opis = str_replace('"','""',$krotki_opis);
  71. $adres = str_replace('"','""',$adres);
  72.  
  73. fwrite($plik, '"'.$tytul.'","'.$krotki_opis.'",'.$miasto.','.$kod_pocztowy.',"'.$adres.'",'.$telefon.','.$url.','.$email.$crlf);
  74.  
  75.  
  76. } // koniec IF
  77.  
  78. } // koniec FOREACH
  79.  
  80.  
  81. fclose($plik);
  82.  
  83. // koniec przetwarzania, podanie odsylacza do pobrania pliku wynikowego
  84. echo '<br>Przetwarzanie zakończone<br>';
  85. echo '<a href = "'.$plik_miasto.'-'.$plik_dzial.'.csv">Plik z rezultatem do pobrania</a>';
  86. echo '</body></html>';
  87.  
  88. } // koniec IF
  89.  
  90.  
  91. // jesli to pierwsze wywolanie strony, pokazujemy formularz wstepny do podania strony do przetworzenia
  92. else
  93. {
  94. echo '<form name="formularz" action="'.$_SERVER["PHP_SELF"].'" method="post">';
  95. ?>
  96. <label for="url">Proszę podać adres strony do przetworzenia:</label><br><br>
  97. <input name="url" value="" size="70"><br><br>
  98. <input type="submit" value="Rozpocznij przetwarzanie">
  99. </form>
  100. <?php
  101. }
  102. ?></body></html>


Poproszę pomóżcie mi bo nie dam rady z ręki wszystkiego obecną metodą zrobić

Pozdr. Y