it-swarm.com.de

Sparen PHP Variablen in eine Textdatei

Ich habe mich gefragt, wie man PHP -Variablen in einer TXT-Datei speichert und dann Sie erneut abruft.

Beispiel:

Es gibt ein Eingabefeld. Nachdem Sie den Inhalt gesendet haben, der in .__ geschrieben wurde, wird das Eingabefeld in einer Textdatei gespeichert. Später müssen die Ergebnisse als Variable zurückgegeben werden. Nehmen wir also an, dass die Variable $ text I Ist, das in einer Textdatei gespeichert werden muss und sie wieder zurückholen kann .

19
abhis

Das sollte tun, was Sie wollen, aber ohne mehr Kontext kann ich nicht sicher sagen.

$ Text in eine Datei schreiben:

$text = "Anything";
$var_str = var_export($text, true);
$var = "<?php\n\n\$text = $var_str;\n\n?>";
file_put_contents('filename.php', $var);

Es wieder abrufen:

include 'filename.php';
echo $text;
41
Sandeep Shetty

Ich persönlich würde file_put_contents und file_get_contents verwenden (dies sind Wrapper für fopen, fputs usw.).

Wenn Sie strukturierte Daten wie Arrays schreiben möchten, sollten Sie den Inhalt der Dateien serialisieren und derialisieren.

$file = '/tmp/file';
$content = serialize($my_variable);
file_put_contents($file, $content);
$content = unserialize(file_get_contents($file));
36
Christian

(Sorry, ich kann es noch nicht kommentieren, sonst würde ich es tun)

Wenn Sie Christians Antwort hinzufügen möchten, sollten Sie json_encode und json_decode anstelle von serialize und unserialize verwenden, um die Sicherheit zu gewährleisten. Siehe eine Warnung auf der Manpage PHP:

Warnung

Übergeben Sie nicht nicht vertrauenswürdige Benutzereingaben an unserialize (). Unsereialisierung kann dazu führen, dass Code aufgrund von Objekt-Instantiierung und automatischem Laden geladen und ausgeführt wird, und ein böswilliger Benutzer kann dies ausnutzen. Verwenden Sie ein sicheres Standard-Datenaustauschformat wie JSON (über json_decode () und json_encode ()), wenn Sie serialisierte Daten an den Benutzer übergeben müssen.

Ihre endgültige Lösung könnte also Folgendes haben:

$file = '/tmp/file';
$content = json_encode($my_variable);
file_put_contents($file, $content);
$content = json_decode(file_get_contents($file), TRUE);
4
duckboy81

for_example Sie haben anyFile.php, und es wird $any_variable='hi Frank'; geschrieben.

um diese Variable in hi Jack zu ändern, verwenden Sie den folgenden Code:

<?php
$content = file_get_contents('anyFile.php'); 

$new_content = preg_replace('/\$any_variable=\"(.*?)\";/', '$any_variable="hi Jack";', $content);

file_put_contents('anyFile.php', $new_content);
?>
1
T.Todua

Verwenden Sie serialize() für die Variable und speichern Sie die Zeichenfolge dann in einer Datei. später können Sie die serialed var aus der Datei lesen und die ursprüngliche var neu erstellen (ob es sich dabei um einen String, ein Array oder ein Objekt handelt)

0
MarcoSpada

Verwenden Sie eine Kombination aus fopen, fwrite und fread. PHP.net verfügt über eine ausgezeichnete Dokumentation und Beispiele von jedem von ihnen. 

http://de2.php.net/manual/de/function.fopen.php
http://de2.php.net/manual/de/function.fwrite.php
http://de2.php.net/manual/de/function.fread.php

0
Kerry Jones

Okay, also brauchte ich eine Lösung, und ich habe mir die Antworten auf diese Frage stark entlehnt und eine Bibliothek erstellt: https://github.com/rahuldottech/varDx (Lizenziert unter der MIT - Lizenz ).

Es verwendet serialize() und unserialize() und schreibt Daten in eine Datei. Es kann mehrere Objekte/Variablen/beliebige Objekte in und aus derselben Datei lesen und schreiben.

Verwendungszweck:

<?php
require 'varDx.php';
$dx = new \varDx\cDX; //create an object
$dx->def('file.dat'); //define data file
$val1 = "this is a string";
$dx->write('data1', $val1); //writes key to file
echo $dx->read('data1'); //returns key value from file

Weitere Informationen finden Sie auf der Github-Seite. Es hat Funktionen zum Lesen, Schreiben, Prüfen, Ändern und Löschen von Daten.

0
rahuldottech