Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [XML][PHP]Zapis danych w formacie xml
charles110
post
Post #1





Grupa: Zarejestrowani
Postów: 56
Pomógł: 0
Dołączył: 2.08.2011

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


Mam kod który zapisuje mi dane do pliku txt w formacie zwykłego tekstu. Zalezy mi żeby ta tres ktora jest w pliku txt zapisywala sie jako xml zebym pozniej mogł te dane wyswietlic na stronie w tabelce. Bede wdzieczny za pomoc.

  1. <?php
  2. $dane = date('Y-m-d H:i:s')."Log on:\r\n";
  3. $file = "test.txt";
  4. $fp = fopen($file, "a");
  5. flock($fp, 2);
  6. fwrite($fp, $dane);
  7. flock($fp, 3);
  8. fclose($fp);
  9. ?>
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
kpt_lucek
post
Post #2





Grupa: Zarejestrowani
Postów: 428
Pomógł: 77
Dołączył: 10.07.2011
Skąd: Warszawa

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


Jakoś problemu nie widzę, jeżeli operujesz TYLKO na plikach to:
1. stwórz sobie jakiś plik w którym trzymasz TYLKO I WYŁĄCZNIE ID np:

id.txt o zawartości:
Kod
158


2. Teraz, podczas odpalenia skryptu php generującego XML robisz coś takiego:
a ) czytasz zawartość pliku id.txt i tą zawartość zapisujesz do zmiennej, na przykład $id (w podanym przykładzie $id, a właściwie jej wartość będzie równa 158),
b ) tworzysz przykładowy kod(można oczywiście zmodyfikować):
  1. <?
  2. header('Content-type: application/xml; charset="utf-8"');
  3. //ładujesz treść "id.txt" do zmiennej $id
  4. echo'<?xml version="1.0" encoding="utf-8"?>'."\n";
  5. echo' <bla_bla>'."\n";
  6. echo' <cos_1>'."\n";
  7. echo' <cos_2>'.$zmienna.'</cos_2>'."\n";
  8. $i=3;
  9. while($i<$id)
  10. {
  11. echo' <cos_'.$i.'>'.$zmienna.'</cos_'.$i.'>'."\n";
  12. $i++;
  13. }
  14. echo' </cos_1>'."\n";
  15. echo' <coss_1>'."\n";
  16. // czymś to wypełniasz...
  17. echo' </coss_1>'."\n";
  18. echo' </bla_bla>'."\n";
  19. // jak skończyłeś, czy też zapisałeś plik zwiększasz $id o 1 i zapisujesz do pliku id.txt nowe id
  20. ?>


Co wsadzisz do środka to Twoja inwencja, to jest tylko przykład - w tej formie możesz wyświetlić go na stronie

TUTAJ masz przykład.

Oczywiście plik id.txt jest opcjonalny, możesz stworzyć plik .php i w nim trzymać zmienną, oraz ładować ją poprzez
  1. <?require("twoj_plik.php");?>

Musisz pamiętać o tym aby po każdym wywołaniu pliku generującego, a właściwie po zakończeniu jego pracy zwiększać/zmniejszać (czy co tam uznasz za stosowne) zmienną w tym pliku (oczywiście skryptem, chyba że wolisz ręcznie (IMG:style_emoticons/default/smile.gif) ).

// MASS EDIT

Przykładowo kod w podanym wyżej linku wygląda tak:
  1. <?
  2. header('Content-type: application/xml; charset="utf-8"');
  3. $zmienna = "bla bla bla";
  4. $id = 10;
  5. echo'<?xml version="1.0" encoding="utf-8"?>'."\n";
  6. echo' <bla_bla>'."\n";
  7. echo' <cos_1>'."\n";
  8. echo' <cos_2>'.$zmienna.'</cos_2>'."\n";
  9. $i=3;
  10. while($i!=$id)
  11. {
  12. echo' <cos_'.$i.'>'.$zmienna.'</cos_'.$i.'>'."\n";
  13. $i++;
  14. }
  15. echo' </cos_1>'."\n";
  16. echo' <coss_1>'."\n";
  17. $i=3;
  18. while($i!=$id)
  19. {
  20. echo' <cos_'.$i.'>'.$zmienna.'</cos_'.$i.'>'."\n";
  21. $i++;
  22. }
  23. echo' </coss_1>'."\n";
  24. echo' </bla_bla>'."\n";
  25. // jak skończyłeś, czy też zapisałeś plik zwiększasz $id o 1 i zapisujesz do pliku id.txt nowe id
  26. ?>


a efektem jest:
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <bla_bla>
  3. <cos_1>
  4. <cos_2>bla bla bla</cos_2>
  5. <cos_3>bla bla bla</cos_3>
  6. <cos_4>bla bla bla</cos_4>
  7. <cos_5>bla bla bla</cos_5>
  8. <cos_6>bla bla bla</cos_6>
  9. <cos_7>bla bla bla</cos_7>
  10. <cos_8>bla bla bla</cos_8>
  11. <cos_9>bla bla bla</cos_9>
  12. </cos_1>
  13. <coss_1>
  14. <cos_3>bla bla bla</cos_3>
  15. <cos_4>bla bla bla</cos_4>
  16. <cos_5>bla bla bla</cos_5>
  17. <cos_6>bla bla bla</cos_6>
  18. <cos_7>bla bla bla</cos_7>
  19. <cos_8>bla bla bla</cos_8>
  20. <cos_9>bla bla bla</cos_9>
  21.  
  22. </coss_1>
  23. </bla_bla>


Tak na przyszłość - jeżeli skrobiesz XML ręcznie (tak jak w tym przykładzie) to odradzam coś takiego:
  1. <?
  2. $a='<cell>';
  3. $b='</cell>';
  4. $c='<rows>';
  5. $c1='</rows>';
  6. $d='<row id="';
  7. ?>

I proponuję zastąpić to podanym przeze mnie przykładem. Dlaczego? Odpowiedź jest prosta, nie zgubisz się w znacznikach (w wypadku błędu którego ciężko znaleźć).

Ten post edytował kpt_lucek 14.10.2011, 11:13:00
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: 8.10.2025 - 08:53