Matze: race-condition-Nachfrage

Beitrag lesen

Hi Matze,

»» ~~~php // Datei mit Schreibrechten öffnen und Inhalt löschen
»» $handle = fopen($login_file, "w");


>   
> An dieser Stelle öffnest du die Datei und löschst den gesamten Inhalt, du greifst also schreibend auf die Datei zu - aber die Sperre hast du zu diesem Zeitpunkt noch nicht, die holst du dir erst später. Merkst du was?  
>   
>   
> ~~~php
> // Datei auf 0 kürzen  
> »» ftruncate($handle, 0);

ftruncate() ist in deinem Quellcode überflüssig, weil die Datei schon beim Öffnen auf 0 gekürzt wurde. Dies bedeutet allerdings nicht, dass ftruncate() an sich sinnlos ist. Das bedeutet lediglich, dass du die Datei im falschen Modus geöffnet hast.

»» Zum Einlesen der Datei benutze ich einfach include(), da muss ich nichts sperren oder sonstwas.

Zum Einlesen?

Also meine xml ist schon eine PHP Datei. Das war wohl der falsche Ansatz?! :(

Sie sieht so aus:

  
<?PHP  
$xmlstr = <<<XML  
<userlist>  
(...)  
</userlist>  
XML;  
?>  

Ich muss wohl nochmal am Anfang ansetzen oder? Also dort wo ich die Datei das erste mal schreibe. Aber wenn ich eine reine XML-Datei einlese und sie in einer Variablen habe, wie krieg ich die dann in das XML-Element?

<<<XML  
$var  
XML;

So dürfte das nichts werden oder?

Danke und Grüße, Matze