TS: php 7 auf RasPi, file_put_contents mit FILE_APPEND, [edit]

Beitrag lesen

Hello,

ich bin gerade sehr irritiert. Das kleine Skript schreibt Temperaturdaten in eine Datei.

<?php
    $text = file_get_contents('/sys/bus/w1/devices/28-011432fac57a/w1_slave');
    $_data = explode(' ', $text);
    $temp = substr(array_pop($_data), 2, 5);  ### alternativ "..., 2)"
    $out = date('Ymd h:i:s ') . $temp . PHP_EOL;
    echo $out;
    file_put_contents('/home/pi/Messungen/s1-temp.txt', $out, FILE_APPEND);

?>

Ich hatte zuerst vermutet, dass in der w1_slave bereits ein EOL stehen würde...

Leider wird in der Datei ein doppeltes 0x0A am Zeilenende eingefügt. Das lässt mich vermuten, dass file_put_contents() mit Flag FILE_APPEND bereits selbst ei 0x0A schreibt, also wieder den guten alten Textmodus benutzt. Das war mMn in PHP 6 nicht so.

Da aber auch LOCK_EX erwähnt wird in den Beispielen, wäre das unlogisch. Der gute alte Textmodus benötigte kein LOCK_EX, da das OS das bereits selbständig geregelt hat.

Ich habe leider im Moment nur das Tablet und den RasPi zum Testen.

##[edit]: ok, das EOL hing, wie vermutet, noch am $temp dran. Irgendwie hat der Raspi aber wohl das geänderte Skript (substr mit Längenangabe) nicht benutzt, sondern noch ein paarmal das alte (ohne Längenangabe beim substr).

Muss mal genauer untersuchen, wenn ich wiedef am PC sitze

Glück Auf
Tom vom Berg

--
Es gibt nichts Gutes, außer man tut es!
Das Leben selbst ist der Sinn.

akzeptierte Antworten