» Braucht man für file_put_contents ein LOCK_EX bei FILE_APPEND?

robots.txt für Honeypot-Firewall nutzenNeuen Thread eröffnenNeue Antwort erstellenFunktion für catch (PDOException $e) mit SQL Query Ausgabe
AutorNachricht
Administrator 

Name: Marc
Geschlecht:
Anmeldedatum: 28.08.2004
Beiträge: 52423
Wohnort: Lohmar


Meine eBay-Auktionen:
27.03.2017, 13:45
zitieren

Auf php.net findet man dieses Beispiel, das leider nicht weiter erklärt wird:
http://php.net/manual/de/function.file-put-contents.php
file_put_contents($file, $person, FILE_APPEND | LOCK_EX);

Das erweckt den Eindruck als müsste man einen exklusiven Lock auf eine Datei machen, bevor man in dieser schreibt. Stimmt allerdings nicht, wie mein Test zeigt:
<?php
function string_rand($len, $split="\n") {
return substr(chunk_split(bin2hex(openssl_random_pseudo_bytes(ceil($len / 2))), 1023, $split), 0, $len);
}

ini_set('memory_limit', '200M');

if (!file_put_contents('file.txt', string_rand(102400000), FILE_APPEND)) {
exit('file_put_contents() error!');
}

clearstatcache();
echo 'filesize: ' . filesize('file.txt') . PHP_EOL;

$fp = fopen('file.txt', 'r');
if ($fp) {
while (($line = fgets($fp)) !== false) {
if (strlen($line) != 1024) {
exit('Line length error!');
}
}
fclose($fp);
}
?>

Egal wie oft und parallel man dieses Script startet, man bekommt nie einen "Error" zu Gesicht. Und der müsste ja kommen, wenn zwei Prozesse gleichzeitig auf eine Datei schreiben und damit ein Zeilenende verrutschen würde. Stattdessen reihen sie sich einfach brav hintereinander ein, was man auch dadurch erkennt, dass der zuletzt gestartete Request am längsten benötigt (weil er auf alle anderen warten muss).

Demnach ist ein LOCK_EX schlicht überflüssig, wenn man log-Dateien schreibt. Wenn man allerdings parallel mit einem anderen Request aus der Datei liest, dann kann das schon anders aussehen.


pn email
Gast 
27.03.2017, 13:45
zitieren

Mach mit!

Wenn Dir die Beiträge zum Thread "Braucht man für file_put_contents ein LOCK_EX bei FILE_APPEND?" gefallen haben oder Du noch Fragen hast oder Ergänzungen machen möchtest, solltest Du Dich gleich bei uns anmelden:



Registrierte Mitglieder genießen die folgenden Vorteile:
✔ kostenlose Mitgliedschaft
keine Werbung
✔ direkter Austausch mit Gleichgesinnten
✔ neue Fragen stellen oder Diskussionen starten
✔ schnelle Hilfe bei Problemen
✔ Bilder und Videos hochladen
✔ und vieles mehr...


Neuen Thread eröffnenNeue Antwort erstellen
Ähnliche BeiträgeRe:
Letzter Beitrag
 Random File Generator
Mit diesem Generator kann man sich eine gewünschte Anzahl von Dateien mit zufälligem Inhalt generieren...
[Allgemein]von mgutt
2
411
17.11.2017, 18:17
mgutt
BIN File rückwärts lesen
Hallo! Ich bin noch ganz unerfahren in C und stehe bei einem Problem. ich habe ein BIN datei mit der Range von 0x0 - 0x7FF0, ich möchte mir den Inhalt in einer neuen BIN spiegelverkehrt und rückwärts ausgehen lassen. Bsp 0x0...
[C]von chris2012
2
221
17.02.2021, 06:18
chris2012
Jackson-Host.de ...your File Hoster!
Möcht mal wissen, was Ihr zu meiner Seite http://jackson-host.de denkt :suspekt: THX für...
von Jackson90
11
926
24.07.2007, 16:23
McKinley
Hochgeladen .docx werden als ZIP-File geöffnet
Hallo zusammen, ich habe folgendes Problem. Wenn ich Word 2007 Dateien mit dem Format .docx hochlade und sie nachher wieder öffnen will, werden sie als ZIP-File angezeigt und auch runtergeladen. Kann mir jemand bei diesem Problem helfen? Ich habe...
von ball87
0
428
22.07.2011, 13:28
ball87
Sound File von meinem Honda Civic ED7 !!
hallo also da mal ein sound file von meinem Honda Civic ED7 aber ist leider nur mit dem Handy aufgenommen worden und auch leider nur mit dem real player zum abspielen !! aber ich versuch es noch besser zu machen...
von BlackHondaDevil
0
929
27.10.2005, 15:43
BlackHondaDevil
Consultant (m/w/d) PRO.FILE | CIDEON Software & Services GmbH & Co. KG
Bewerben Sie sich bis zum 09.06.2023. Jetzt bewerben! Zur Stellenanzeige auf Mein IT Job Ihre Bewerbung richten Sie bitte ausschließlich an die ausgeschriebene Firma. ________ Für unsere bundesweiten Standorte suchen wir Sie zum nächstmöglichen...
[Jobs & Stellenangebote]von kimjob
0
195
18.04.2023, 17:27
kimjob
Consultant (m/w/d) PRO.FILE | CIDEON Software & Services GmbH & Co. KG
Bewerben Sie sich bis zum 15.08.2023. Jetzt bewerben! (https://api.relaxx.center/r/e7863e69dbe94c908463bac7a43c1e95?pid=1890239&mpid=1260793&prid=1021081&tid=30) Zur Stellenanzeige auf Mein IT Job (https://s.jobboarddeutschland.de/1bql) Ihre...
[Jobs & Stellenangebote]von kimjob
0
164
26.06.2023, 15:32
kimjob
Consultant (m/w/d) PRO.FILE | CIDEON Software & Services GmbH & Co. KG
Bewerben Sie sich bis zum 15.09.2023. Jetzt bewerben!(https://api.relaxx.center/r/ab4610332ae24fae8ed6de4097a95f52?pid=1922145&mpid=1270751&prid=1021081&tid=30) Zur Stellenanzeige auf Mein IT Job(https://s.jobboarddeutschland.de/1d55) Ihre...
[Allgemein]von kimjob
0
87
24.07.2023, 11:57
kimjob
 Internal / Local File Inclusion - Angriff über Bilder-Upload
Hier wird ausführlich erklärt wie man innerhalb eines Bildes php-Code platziert. Danach muss man nur noch eine Lücke im System finden, die es erlaubt lokale Dateien in einem Script einzubinden. Ich schaue gerade, ob ich einen Filter dafür...
[PHP]von mgutt
1
2.406
08.02.2008, 07:27
mgutt
Warnung: is_dir(): open_basedir restriction in effect. File(/tmp) is not within the allowed path...
Moin zusammen, ich kriegs nicht gebacken ... :) und brauch Eure Hilfe... aus Spaß an der Freude und Neugier hatte ich mir ohne viele Kenntnisse ne Mediawiki eingerichtet. Hatte alles funktioniert. Als ich die Seite nach langer Zeit wieder öffnete...
von Zicke
0
103
24.12.2016, 01:09
Zicke
© 2004 - 2025 www.programmierer-forum.de | Communities | Impressum |