Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> nadpisywanie pliku w określonym miejscu
budyn_
post
Post #1





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 30.05.2007

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


Mam skrypt, który pobiera ode mnie poprzez formularz dane i zapisuje do pliku "baza.xml".

owy skrypt php:

  1. <html>
  2. <body>
  3. <!--
  4. kod wyświetlający formularz na stronie i pobierający dane od użytkownika
  5. -->
  6. <form method="POST">
  7. Autor: <input type="text" name="autor" size="20"><br>
  8. Tytul: <input type="text" name="tytul" size="20"><br>
  9. Rozmiar: <input type="text" name="rozmiar" size="20"><br>
  10. Czas: <input type="text" name="czas" size="20"><br>
  11. Gatunek: <input type="text" name="gatunek" size="20"><br>
  12. Rok: <input type="text" name="rok" size="20"><br>
  13. Plik: <input type="text" name="plik" size="20"><br>
  14. <br>
  15. <input type="submit">
  16. </form>
  17. </body>
  18. </html>
  19. <!--
  20. skrypt php pobierający dane z formularza i zapisujący do pliku
  21. -->
  22. <?php
  23.  
  24. $autor=$_POST['autor']; 
  25. $tytul=$_POST['tytul']; 
  26. $rozmiar=$_POST['rozmiar']; 
  27. $czas=$_POST['czas']; 
  28. $gatunek=$_POST['gatunek']; 
  29. $rok=$_POST['rok']; 
  30. $plik=$_POST['plik']; 
  31.  
  32. $dane='<?xml version="1.0"?>
  33. <?xml-stylesheet type="text/xsl" href="styl.xsl"?>
  34. <BAZA> 
  35. <MP3> 
  36.  <AUTOR>'.$autor.'</AUTOR> 
  37.  <TYTUL>'.$tytul.'</TYTUL> 
  38.  <ROZMIAR>'.$rozmiar.'</ROZMIAR>
  39.  <CZAS>'.$czas.'</CZAS> 
  40.  <GATUNEK>'.$gatunek.'</GATUNEK> 
  41.  <ROK>'.$rok.'</ROK> 
  42.  <PLIK>'.$plik.'</PLIK> 
  43. </MP3> 
  44. </BAZA> 
  45. '; 
  46.  
  47. $wp=fopen('baza.xml', 'w+'); 
  48. fwrite($wp, $dane); 
  49. fclose($wp);
  50. ?>


Poniżej przedstawiam, to co zostaje stworzone przez powyższy skrypt, czyli plik baza.xml

  1. <?xml version="1.0"?>
  2. <?xml-stylesheet type="text/xsl" href="styl.xsl"?>
  3.  
  4. <BAZA>
  5.  
  6.    <MP3>
  7.          <AUTOR>Mika</AUTOR>
  8.          <TYTUL>Relax, Take It Easy</TYTUL>
  9.          <ROZMIAR>3</ROZMIAR>
  10.          <CZAS>3:12</CZAS>
  11.          <GATUNEK>POP?</GATUNEK>
  12.          <ROK>2007</ROK>
  13.          <PLIK>Mika_-_Relax,_Take_It_Easy.mp3</PLIK>
  14.    </MP3>
  15.  
  16. </BAZA>


Jak do tej pory wszystko działa.
Mój problem polega na tym, iż chcialbym mieć możliwość dodawania kolejnych plików do mojej niby bazy.
Na podstawie index.php chciałem zrobić dodaj.php przy użyciu fseek(), tak by sekcja między <MP3> a </MP3>, została zapisana przed </BAZA>. Na fseek() wpadłem tu na forum i troszke poczytalem w manualu.. ale nic z tego nie wyszło. Czy możecie mi pomóc, tak by za pomocą pliku dodaj.php można było stworzyć takie coś:

  1. <?xml version="1.0"?>
  2. <?xml-stylesheet type="text/xsl" href="styl.xsl"?>
  3.  
  4. <BAZA>
  5.  
  6.    <MP3>
  7.          <AUTOR>Mika</AUTOR>
  8.          <TYTUL>Relax, Take It Easy</TYTUL>
  9.          <ROZMIAR>3</ROZMIAR>
  10.          <CZAS>3:12</CZAS>
  11.          <GATUNEK>POP?</GATUNEK>
  12.          <ROK>2007</ROK>
  13.          <PLIK>Mika_-_Relax,_Take_It_Easy.mp3</PLIK>
  14.    </MP3>
  15.  
  16.    <MP3>
  17.          <AUTOR>Shazza</AUTOR>
  18.          <TYTUL>Baja bongo</TYTUL>
  19.          <ROZMIAR>2,5</ROZMIAR>
  20.          <CZAS>3:23</CZAS>
  21.          <GATUNEK>disco polo</GATUNEK>
  22.          <ROK>1994?</ROK>
  23.          <PLIK>shazza.mp3</PLIK>
  24.    </MP3>
  25.  
  26. </BAZA>
Go to the top of the page
+Quote Post
Ludvik
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 698
Pomógł: 3
Dołączył: 28.03.2004
Skąd: Wrocław

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


Operowanie na xmlu za pomocą funkcji obsługi plików nie jest najlepszym pomysłem. Zobacz na przykład SimpleXML" title="Zobacz w manualu PHP" target="_manual... Rozszerzenie jest tak proste w użyciu, że manual i tutoriale na necie powinny wystarczeć...
Go to the top of the page
+Quote Post
budyn_
post
Post #3





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 30.05.2007

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


musze przyznać, że jestem za głupi by skumać SimpleXMLa, w zasadzie udało mi się stworzyć przy pomocy googli odczytywanie pliku xml za pomocą biblioteki SimpleXML, ale nie potrafie stworzyć zapisu.
Go to the top of the page
+Quote Post
Ludvik
post
Post #4





Grupa: Przyjaciele php.pl
Postów: 698
Pomógł: 3
Dołączył: 28.03.2004
Skąd: Wrocław

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


W manualu są przykłady 2034 i 2035 (na podanej przeze mnie stronie), które pokazują jak zapisuje się dane. Wystarczy wywołać metodę asXML. Za dodawanie elementów odpowiada funkcja addChild, która dopisuje element do wybranej gałęzi i zwraca obiekt reprezentujący go.
Go to the top of the page
+Quote Post

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: 23.08.2025 - 12:31