Ich muss eine 20k bis 30k Datei registrieren mit einem einfachen Schlüssel: Wert pro Zeile. Ich muss es in einer Datei behalten, da andere Instanz es auch verwenden wird. Dann muss ich einen bestimmten Schlüssel finden, um seinen Wert zu erhalten und auch einen Schlüssel schreiben: Wert in der Datei. Ich habe mich gefragt, welche der folgenden Methoden sind schneller/besser oder als gute Praxis angesehen.Ist es gut, Systemaufrufe zum Schreiben und Lesen einer Datei in PHP zu verwenden?
Um eine Datei zu schreiben, weiß ich über drei Möglichkeiten, es zu tun: zuerst:
$fh = fopen('myfile.txt', 'a') or die("can't open file");
fwrite($fh, 'key:value');
fclose($fh);
Sekunde oder mit file_put_contents
file_put_contents('myfile.txt','key:value',FILE_APPEND);
und dritte ein Systemaufruf.
exec("echo key:value >> myfile.txt");
Und auch, um eine Datei zu lesen und eine Linie a finden können tun: Mit file_get_contents
$filename = 'info.txt';
$contents = file_get_contents($filename);
foreach($contents as $line) {
$pos = strpos($line, $key);
}
Datei Mit
$filename = 'info.txt';
$contents = file($filename);
foreach($contents as $line) {
$pos = strpos($line, $key);
}
Und mit einem Systemaufruf:
exec("grep $key | wc -l",$result);
Halten Sie sich an die PHP-Funktionen. Auf diese Weise wird Ihr Code auf andere Betriebssysteme portierbar sein. –