Hallo!
ich habe ein Script, dass Text in eine (bestehende) XML-Datei schreibt (bzw schreiben soll).
Dazu gehe ich wie folgt vor:
- xml-Datei öffnen
- erzeuge mit file() einen Array
- speichere die erste Zeile in eine Variable udn lösche sie aus dem Array
- setze den Restarray mit implode() wieder zusammen
- lösche die xml-Datei vom Server
- erzeuge sie neu mit fopen($datei, w+) und fwrite()
functions.php:
Nun erhalte ich beim Erzeugen folgende Fehler:
und dass obwohl ich die Datei chmod777 habe.
Wo liegt da mein Fehler?
Gibt es eine Möglichkeit nur den Inhalt einer Datei zu löschen? Dann bräuchte ich Sie nicht immer physisch neu anzulegen.
Vielen Dank!
ich habe ein Script, dass Text in eine (bestehende) XML-Datei schreibt (bzw schreiben soll).
Dazu gehe ich wie folgt vor:
- xml-Datei öffnen
- erzeuge mit file() einen Array
- speichere die erste Zeile in eine Variable udn lösche sie aus dem Array
- setze den Restarray mit implode() wieder zusammen
- lösche die xml-Datei vom Server
- erzeuge sie neu mit fopen($datei, w+) und fwrite()
functions.php:
PHP:
function updatexml($datei,$pass,$passthrough)
{
chmod($datei,"777");
$dateilader = file($datei);
$anzahl_zeilen = count($dateilader);
//echo $anzahl_zeilen;
$addText = "<link>\n<naam>" . $_POST['tickertext'] . "</naam>\n<url>" . $_POST['tickerlink'] . "</url>\n</link>";
//$addText = "<link>\n<naam>test1</naam>\n<url>http://test/work/</url>\n</link>";
if($anzahl_zeilen != 0)
{
$ersteZeilen = $dateilader[0] . $dateilader[1];
//echo $ersteZeilen;
unset($dateilader[0]);
unset($dateilader[1]);
$restDatei = implode("",$dateilader);
//echo $restDatei;
delete($datei);
$neueDatei = $ersteZeilen;
$neueDatei .= $addText;
$neueDatei .= $restDatei;
}
else
{
$neueDatei = '<?xml version="1.0" encoding="iso-8859-1" ?>
<dataveld>
';
$neueDatei .= $addText;
$neueDatei .= '
</dataveld>';
}
$fp = fopen($datei,"w+");
if((fwrite($fp,$neueDatei)) && ($pass == $passthrough)) $status = "<h3><font color=green>" . $datei . " erfolgreich geschrieben.</font></h3><h5>Folgender Text wurde ergänzt:<br><pre>" . $addText . "</pre><a href=editnews.php?preview>Flash-Vorschau</a></h5>";
else $status = "<h3><font color=red>" . $datei . " nicht erfolgreich geschrieben!</font></h3><h5>- Bitte prüfen Sie die Datei auf Existenz und Zugriffsberechtigungen!<br>- Haben Sie das richtige Passwort eingegeben?</h5>";
fclose($fp);
echo $status;
}
Nun erhalte ich beim Erzeugen folgende Fehler:
Code:
Warning: chmod() [function.chmod]: Operation not permitted in /www/htdocs/dprojekt/emogress.de/ticker/functions.php on line 4
Warning: unlink(tickerurls.xml) [function.unlink]: Permission denied in /www/htdocs/dprojekt/emogress.de/ticker/functions.php on line 18
Warning: fopen(tickerurls.xml) [function.fopen]: failed to create stream: Permission denied in /www/htdocs/dprojekt/emogress.de/ticker/functions.php on line 32
Warning: fwrite(): supplied argument is not a valid stream resource in /www/htdocs/dprojekt/emogress.de/ticker/functions.php on line 33
Warning: fclose(): supplied argument is not a valid stream resource in /www/htdocs/dprojekt/emogress.de/ticker/functions.php on line 35
Wo liegt da mein Fehler?
Gibt es eine Möglichkeit nur den Inhalt einer Datei zu löschen? Dann bräuchte ich Sie nicht immer physisch neu anzulegen.
Vielen Dank!
Zuletzt bearbeitet: