jak otworzyć a następnie zapisać XML w JS/PHP

0

Witam.

W pliku XML umieściłem pewne informacje np. dane książek. Teraz przy pomocy Javascriptu mogę Otwierać i edytować zawartość tego pliku (dodawać książki itd.) Jednak jak zapisać tak wyedytowany plik z powrotem na dysk ?? Już cały dzień siedzę na Google więc pomóżcie :)

Chciałbym przede wszystkim aby po kliknięciu na przycisk wywołać odpowiednią funkcje javascript lub jakiś php który by mi zapisał ten plik.

<input id="Submit1" type="submit" value="Zatwierdź" onclick ="dodaj_i_zapisz()" />

jak dotąd znalazłem:
JS:
oXMLDom.load / save - NIE DZIAŁA --- load używam do odczytu pliku i jest ok, potem go mogę edytować itp.
PHP:
$doc->load("plik.xml"); / save("plik.xml"); - NIE DZIAŁA - korzystałem z przykładów w internecie lecz nie działały tzn. nie zapisywały pliku a co do odczytu plików nie jestem pewien

0

Z poziomu JS (jak i PHP) nie da się zapisać pliku na dysku użytkownika.

0

To może ktoś mi podpowie jak w dość prosty sposób edytować i zapisywać taki plik ??

Proszę o pomoc, lub ewentualnie o wskazanie jakiejś innej metody

0

Możesz zapisywać pliki na serwerze(tak jak w twoim linku), tylko dla osobnego usera osobny plik(o nazwie np. username - będzie unikatowo)

0
<?php
$plik_we = fopen("index.html", "r");
$plik_wy = fopen("index2.html", "w");
  if ($plik_we === false) {
    echo "Nie można otworzyć pliku do odczytu!";
  } else {
    while (!feof($plik_we)) {
     $bufor = fgets($plik_we);
     echo htmlentities($bufor)."<br />";
     fputs($plik_wy, $bufor);
    }
    fclose($plik_we);
  }
  fclose($plik_wy);
?> 

fclose($plik_wy); - czy ta funkcja zapisze mi plik ??
czy mam dodać coś takiego:
fwrite($plik_wy,"<root />");

0

Napisałem coś takiego również:

<?php
$fp = fopen('data.txt', 'w');
fwrite($fp, '1');
fwrite($fp, '23');
fclose($fp);
?>

Niestety nie działa.
Czy jest możliwość, że admin serwera blokuje w jakiś sposób wykonanie zapisu pliku ??

0

spróbuj tak:

<?php
$fp = fopen('data.txt', 'w');
flock($fp,2);
fwrite($fp, '1');
fwrite($fp, '23');
flock($fp,3);
fclose($fp);
?>
0

Dziękuję wszystko już działa :)

Do zamknięcia

0

A jeszcze takie jedno pytanko:

<?php
$doc = new DomDocument();
$pollfile = "potrawy.xml";
$doc->load($pollfile);
$kat_id = $_GET['id_kat'];  ------ ID kategorii
$pot_id = $_GET['id_pot'];  ------ ID potrawy
$root = $doc->documentElement;
$kat = $root->getElementsByTagName("kategoria")->item($kat_id);
$pot = $kat->getElementsByTagName("potrawa")->item($pot_id);
$oldpot = $kat->removeChild($pot);  ------- usuwanie potrawy o określonym ID
$doc->save("potrawy1.xml");
?>

Czy ktoś może mi powiedzieć czy ten kod jest poprawny ?? bo niby wszystko jest ok ale jednak nie zapisuje mi do pliku danych

0

a co wyświetli echo $doc->save("potrawy1.xml");?

0

Ja bym Ci polecił korzystanie z SimpleXML, bardzo upraszcza sprawy związane z operacjami na plikach XMLowych :)

bo niby wszystko jest ok ale jednak nie zapisuje mi do pliku danych
Sprawdź może uprawnienia?

0

Czy problem został juz rozwiazany? bo bortykam sie z tym samym problemem.

Potrzebuje zapisac kilka inforamcji w XML i je później edytowac przez formularz.

bardzo bym prosił o rozwiazanie na maila [[email protected]]

Dziekuje.

0

tak mi już działa. Problem tkwił w innej funkcji javascript która przekazywała zły parametr do kody php. Teraz już wszystko jest ok.

[email protected] - jak ktoś chce kody to mu wyślę pocztą piszcie

1 użytkowników online, w tym zalogowanych: 0, gości: 1