Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Czytanie pliku XML, Niechce żadnej klasy!!!
akurczyk
post
Post #1





Grupa: Zarejestrowani
Postów: 201
Pomógł: 5
Dołączył: 15.07.2008
Skąd: Kłodzko

Ostrzeżenie: (10%)
X----


Potrzebuję przeczytać plik XML (jak bazę danych) z poziomu PHP.
Wiem że można pobrać SAXa ale nie chcę żadnych klas, i proszę nie robić offtopa dlaczego, porostu nie.

Plik XML:
Kod
<newsy>
     <news>
         <tytul>Drug news</tytul>
         <tresc>Treść drugiego newsa</tresc>
         <dodane>11-11-2011 11:11:11</dodane>
     </news>
     <news>
          <tytul>Pierwszy news</tytul>
          <tresc>Treść pierwszego newsa</tresc>
          <dodane>10-10-2010 10:10:10</dodane>
      </news>
</newsy>


Chcę te newsy wyświetlić jak dane z bazy.

Ten post edytował akurczyk 24.10.2008, 09:47:22
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
johnson
post
Post #2





Grupa: Zarejestrowani
Postów: 90
Pomógł: 2
Dołączył: 3.12.2004

Ostrzeżenie: (0%)
-----


  1. <?php
  2. function readnews($filename)
  3. {
  4.  
  5. // czytanie pliku
  6. $xml_string = join('', file($filename));
  7.  
  8. // usuniecie znaków końca linii z całego pliku (tak, aby powstał jednolity ciąg)
  9. $order = array("r\n", "\n", "r");
  10. $replace = '';
  11. $xml_string = str_replace($order, $replace, $xml_string);
  12.  
  13. // podzielenie na części
  14. $pieces = explode('</news>', $xml_string);
  15.  
  16. // parsowanie i umieszczenie danych w tablicy asocjacyjnej
  17. $data = Array();
  18. foreach ($pieces as $value)
  19. {
  20.   if (eregi("<tytul>([^<]*)</tytul>[^<]*<tresc>([^<]*)</tresc>[^<]*<dodane>([^<]*)</dodane>", $value, $out))
  21.   {
  22.      $news = Array();
  23.      $news["tytul"] = $out[1];
  24.      $news["tresc"] = $out[2];
  25.      $news["dodane"] = $out[3];
  26.      $data[] = $news;
  27.   }
  28. }
  29. return $data;
  30. }
  31.  
  32. $data = readnews('news.xml');
  33. ?>


Nie jest to może najlepsze rozwiązanie, ale chyba takie o jakie chodziło. Nie wiem czy działa, bo nie testowałem, jeśli będą jakieś błędy to powinieneś sobie poradzić.
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 9.10.2025 - 15:22