Moin!
$fd = fopen($fname,"x");
fclose($fd);Was ist der Unterschied zu file_exists() (abgesehen von der Behandlung von Symlinks)?
file_exists prüft die Existenz der Datei, hinterlässt für andere Prozesse aber keinerlei Spuren, dass der geprüfte und nicht gefundene Dateiname danach dann in Benutzung ist.
fopen(x) prüft, ob die Datei existiert, und nur wenn nicht, wird die Datei angelegt und zum Schreiben geöffnet - wobei das Schreiben hier ja nicht wirklich gebraucht wird, wichtig ist, dass die Datei bei Nichtexistenz angelegt wird, und bei Existenz ein Fehler kommt. Dadurch wird jedes andere Skript, was zeitgleich dasselbe versucht, entweder vorher laufen und die Datei früher anlegen, oder später laufen und die angelegte Datei finden und abbrechen.
- Sven Rautenberg