2013-02-14 6 views
6

ich ein Array haben, die in einer Datei nach der Verwendung Ich möchte schreiben print_rArray Schreiben in PHP-Datei und die Daten immer

Array ([0] => Array ([0] => piklu [name] => piklu) [1] => Array ([0] => arindam [name] => arindam) [2] => Array ([0] => shyamal [name] => shyamal) [3] => Array ([0] => arko [name] => arko) [4] => Array ([0] => pamela [name] => pamela) [5] => Array ([0] => dodo [name] => dodo) [6] => Array ([0] => tanmoy [name] => tanmoy) [7] => Array ([0] => jitu [name] => jitu) [8] => Array ([0] => ajgar [name] => ajgar)) 

Nun ist diese Anordnung direkt wie folgt aussieht, verwende ich die file_put_contents Methode, aber Ich weiß nicht, wie man die Daten aus der Datei genau so bekommt, wie sie ursprünglich aussehen. Irgendeine Idee, das zu lösen?

+0

, wie Sie es einer Datei speichern? kannst du deinen Code auch zeigen? –

+0

Warum möchten Sie dieses Array in Datei schreiben? und warum willst du es aus der Datei holen? Beschreiben Sie Ihr Ziel der Arbeit? – ripa

Antwort

23

Ihr Problem im Moment stellen ist im Grunde, dass Sie nur in der Lage sind Zeichenfolge in eine Datei zu schreiben. Um also file_put_contents zu verwenden, müssen Sie zuerst Ihre Daten in eine Zeichenfolge konvertieren.

Für diesen speziellen Anwendungsfall gibt es eine Funktion namens serialize, die jeden PHP-Datentyp in einen String konvertiert (außer Ressourcen).

Hier ein Beispiel, wie man das benutzt.

$string_data = serialize($array); 
file_put_contents("your-file.txt", $string_data); 

Wahrscheinlich möchten Sie Ihre Daten später auch extrahieren. Verwenden Sie einfach unserialize, um die Zeichenfolgendaten aus der Datei zurück in ein Array zu konvertieren. Diese

ist, wie Sie es tun:

$string_data = file_get_contents("your-file.txt"); 
$array = unserialize($string_data); 
+0

Danke..dies erfülle mein Ziel genau ... Danke nochmals viel. –

4

Hier sind zwei Möglichkeiten:

(1) Schreibe eine JSON Darstellung des Array-Objekt in die Datei.

$arr = array([...]); 
file_put_contents('data.txt', json_encode($arr)); 

Dann später ...

$data = file_get_contents('data.txt'); 
$arr = json_decode($data); 

(2) eine serialisierte Darstellung des Array-Objekt in die Datei schreiben.

$arr = array([...]); 
file_put_contents('data.txt', serialize($arr)); 

Dann später ...

$data = file_get_contents('data.txt'); 
$arr = unserialize($data); 

ziehe ich JSON-Methode, weil es nicht korrupt tut so leicht wie serialize. Sie können die Datendatei öffnen und Änderungen an den Inhalten vornehmen, und sie wird ohne große Kopfschmerzen zurückkodieren/decodieren. Serialisierte Daten können nicht geändert oder beschädigt werden, oder unserialize() funktioniert nicht.

+0

Das einzige "Problem" mit PHP & Json ist, dass Sie mit Arrays richtig umgehen müssen. PHP unterscheidet nicht zwischen einer Liste und einem Hash/Objekt (wie javascript/json), in PHP gibt es nur ein Array.Sie wollen wahrscheinlich den zweiten Parameter von 'json_encode()' sehen, um es richtig zu machen. – MarcDefiant

0

ich bin nicht sicher, aber vielleicht ist es so etwas. Sie möchten das Array beim Schreiben serialisieren(). es wird Ihren Array in test.txt

file_put_contents('test.txt', serialize($array)); 
3

file_put_contents schreibt eine Zeichenkette in eine Datei, kein Array. http://php.net/manual/en/function.file-put-contents.php

Wenn Sie schreiben möchten, was Sie dort sehen in diesem print_r in eine Datei, können Sie dies versuchen:

ob_start(); 
print_r($myarray); 
$output = ob_get_clean(); 
file_put_contents("myfile.txt",$output); 
+1

anstelle der Ausgabe Pufferung, werfen Sie einen Blick auf den zweiten Parameter von print_r – MarcDefiant

+0

Guter Punkt. Ich weiß das, aber ich dachte, dass in 5 hinzugefügt wurde, sieht aus wie es in 4.3 hinzugefügt wurde. So oder so, ohne die PHP-Version zu kennen, besser auf Nummer sicher gehen! –

+1

Ich würde sagen, zu diesem Zeitpunkt haben die meisten Benutzer mindestens PHP 5.3. Ich denke, es ist immer wichtig, mindestens die neuen Funktionen zu erwähnen, damit Benutzer sie schnell übernehmen und ihr PHP aktualisieren, damit die Sprache schneller gehen kann. – MarcDefiant

Verwandte Themen