Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Zapis do pliku..
Forum PHP.pl > Forum > PHP
Zmaziuu
Witam, mam pewien problem w php. Wyciągam dane z Flasha i zapisuje do pliku baza.xml (flash juz automatycznie mi generuje plik xmlowski). Jednak w pliku baza.xml znajuje sie juz zakladka "<notatki></notatki> i zmienne powinny być wstawiane pomiedzy te znaczniki. Tak się jednak nie dzieje. Pierwsza czesc tzn. "<notatki>" zostaje powielona, pozniej wystepuje zmienna z flasha i pozniej znowu "<notatki></notatki>". Poniżej prezentuje kod. Pomóżcie, bo nie wiem, jak to zrobić by zmienna $dane została wpasoowana w znaczniki tzn. <notatki>$dane</notatki>.

  1. <?php 
  2. $dane = $_POST['xml']; 
  3. $file="baza.xml"; 
  4. $fp=fopen("$file", "r+"); 
  5. $dane=$dane.fread($fp, filesize($file)); 
  6. fseek($fp, 9);
  7. flock($fp, 11); 
  8. fwrite($fp, $dane); 
  9. flock($fp, 12);
  10. fclose($fp); 
  11. ?>


Dla was to pewnie prosta sprawa, ja już na tym mysle 2 godziny..
bne
  1. <?php 
  2. $dane = $_POST['xml']; 
  3. $file="baza.xml"; 
  4. $fp=fopen("$file", "r+"); 
  5. $dane=$dane.fread($fp, filesize($file)); 
  6. fseek($fp, 9);
  7. flock($fp, 11); 
  8. fwrite("$fp", "<notatnik>$dane</notatnik>"); 
  9. flock($fp, 12);
  10. fclose($fp); 
  11. ?>
Zmaziuu
No niestety nie działa.. plik baza.xml zostaje pusta. Wydaje mi się też ze teraz za każdym razem został dodany znacznik <notatki></notatki> a te znaczniki sa recznie wpisane w pliku baza.xml a dane powinny pojawiac sie pomiedzy nimi..

edit.

zmieniłem

  1. <?php
  2. fwrite("$fp", "<notatnik>$dane</notatnik>");
  3. ?>

  1. <?php
  2. fwrite($fp, "<notatnik>$dane</notatnik>");
  3. ?>


i teraz plik aktualizowany jest dobrze, baza sie zmienia tylko jak pisałem wyżej, za każdym razem zostaje dodany ten znacznik <notatki></notatki> a tak byc nie powinno (w moim wypadku)

ps. dzieki za szybka reakcję
jarrod
  1. <?php
  2. $dane = $_POST['xml'];
  3. $file="baza.xml"; 
  4.  
  5. $fp=fopen("$file", "r+");
  6. $tresc = fread($fp, filesize($file));
  7.  
  8. $tresc = preg_replace(
  9. '/^(<notatki>).*(</notatki>)$/',
  10. '1'.$dane.'2',
  11. $tresc
  12. );
  13. fseek($fp, 0);
  14. fwrite($fp, $tresc); 
  15. fclose($fp);
  16. ?>
Zmaziuu
Niestety nic nie dodaje sie do pliku baza.xml
bne
pokaż zawartość pliku baza (dane zastąp zmienną) i pokaż co ci w nim nie pasuje a jak ma być...
Zmaziuu
W pliku baza znajdują się tylko znaczniki <notatnik></notatnik>. W miejsce pomiędzy tymi znacznikami chce wpasować zmienne. Twój skrypt bne był dobry tylko, że on za każdymr razem dodwała te znaczniki (<notatnik></notatnik>), a ja chcę dodwać tylko zmienne, bez znaczników. Myślałem, że ten mój pierwotny kod będzie pasował, jednak ten duplikuje znacznik <notatnik> na poczatkątku.. worriedsmiley.gif
bne
Dalej nie rozumiem tongue.gif

Jak już pisałem pokaż zawartość pliku baza , dane przykryj zmienną i pokaż co nie pasuje i jak ma być smile.gif
Zmaziuu
Baza.xml

  1. <notatki>*
  2. </notatki>


w miejscu gwiazdki (ktorej tam nie ma, dalem do przykladu) maja pokazac sie wygenerowane dane.

flash generuje mi szablon xml-a (w przechwytywanej przez php zmiennej o nazwie "xml"):

  1. <wpis>
  2. <wpistime>Dnia 23. 09. 2006</wpistime>
  3. <wpistitle>NAZWA TEMATU Z POLA TXTOWEGO</wpistitle>
  4. <wpismsg>TRESC Z POLA TXTOWEGO</wpismsg>
  5. </wpis>


jeszce raz zamieszczam treść .php

  1. <?php 
  2. $dane = $_POST['xml']; 
  3. $file="baza.xml"; 
  4. $fp=fopen("$file", "r+"); 
  5. $dane=$dane.fread($fp, filesize($file)); 
  6. rewind($fp);
  7. flock($fp, 2); 
  8. fwrite($fp, $dane); 
  9. flock($fp, 3);
  10. fclose($fp); 
  11. ?>


No to chyba wszystko, bardziej dokladnie nie potrafie;)

edit: po wygenerwaniu moim skryptem baza.xml wyglada tak:

  1. <notatki><wpis><wpistime>Dnia 23. 09. 2006</wpistime><wpistitle>NAZWA TEMATU</wpistitle><wpismsg>TRESC</wpismsg></wpis>           <wpis><wpistime>Dnia 23. 09. 2006</wpistime><wpistitle>NAZWA TEMATU</wpistitle><wpismsg>TRESC</wpismsg></wpis><notatki>
  2. </notatki>
bne
spróbuj tak :

  1. <?php
  2. $dane = $_POST['xml']; 
  3. $file="baza.xml"; 
  4. $fp=fopen("$file", "r+"); 
  5. $dane=$dane.fread($fp, filesize($file)); 
  6. rewind($fp);
  7. flock($fp, 2); 
  8. fwrite($fp, "<notatnik>".$dane."</notatnik>"); 
  9. flock($fp, 3);
  10. fclose($fp);
  11. ?>
Zmaziuu
baza.xml po dodaniu 2 wpisow

  1. <notatnik><wpis><wpistime>Dnia 23. 09. 2006</wpistime><wpistitle>NAZWA TEMATU</wpistitle><wpismsg>TRESC</wpismsg></wpis><notatnik><wpis><wpistime>Dnia 23. 09. 2006</wpistime><wpistitle>NAZWA TEMATU2</wpistitle><wpismsg>TRESC2</wpismsg></wpis><notatki></notatki></notatnik></notatnik>


jak widac nie spelnia to wymogow xml.. sadsmiley02.gif
bne
nie znam sie na flashu ale chyba możesz umieścić w nim element strony w php ? skoro tak to czemu nie zrobisz tych danych w php : D ?
Zmaziuu
potrzebuje je w xml-u, i w tym cala zabawa..
bne
no to ja już dalej nie pomoge, przekracza to moje możliwości, przykro mi
Zmaziuu
Cytat(bne @ 23.10.2006, 22:48:12 ) *
no to ja już dalej nie pomoge, przekracza to moje możliwości, przykro mi


dzieki, za chęci..
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.