2016-05-26 8 views
2

Ich habe eine Datei, in der ich Daten im Array-Format gespeichert und später möchte ich diese Daten in eine Variable lesen und diese Variable muss sich wie ein Array verhalten.So holen Sie gespeicherte Array aus einer Datei und greifen Sie darauf wie ein Array

Angenommen habe ich eine Datei auf meinem PC: C: /test.txt und es enthält einen Array:

Array 
(
    [first_name] => John 
    [last_name] => Doe 
    [email] => [email protected] 
) 

Jetzt bin ich dieses Abrufen von Daten unter Verwendung von Methode:

$myfile = fopen("C:/test.txt", "r"); 
$test = fread($myfile,filesize("C:/test.txt")); 

Jetzt, wenn ich $ Test drucke zeigt es die Daten wie Array, aber wenn ich den Datentyp dieser Variablen überprüfen, dann zeigt es String.

Ich habe konvertierte auch diese Variable in Array-Typ Gießen:

$test1 = (Array) $test; 

Aber wenn versucht, jeden Index von test1 $ zu holen dann Illegal String Fehler es zeigen.

So kann mir jemand helfen.

+0

Haben Sie versucht, den Datentyp nach der Konvertierung zu erhalten ??? –

+0

Ja, ich habe versucht und nach der Konvertierung zeigt den Datentyp als Array, konnte aber immer noch keinen Index von der neuen Variable erhalten. – Ankit

+0

Können Sie es stattdessen als JSON speichern? '{" first_name ":" John "," Nachname ":" Doe "," email ":" johndoe @ gmail.com "}' –

Antwort

0

C: /test.php

<?php 
return array(
    'first_name' => null, 
    'last_name' => null, 
    'email' => 'new', 
); 

eine andere Datei:

<?php 
$array = inclde('C:/test.php'); 

Oder speichern json in Datei C:/test.json

{"first_name":null,"last_name":null,"email":"new"} 

und in einer anderen Datei:

<?php 
$json = file_get_contents('C:/test.json'); 
$array = json_decode($json, true); 
+0

Danke zu beantworten, aber ich kann keine Dateien einschließen, da es 100s Dateien gibt, die gespeichert werden und später abgerufen werden. – Ankit

+1

Sie können Ihre 100 Dateien im JSON-Format speichern, und danach '$ array = json_decode (file_get_contents ('C: /pathToFile.json'));.. –

+0

@Ankit es fast Ihren Code - $ myfile = "C: /test.txt"; $ array = inclde ($ myfile); ' – splash58

0

Versuchen Sie, diese

$file = "C:/test.txt"; 
    $document = fopen($file,'r'); 
    $contents = fread($document, filesize($file)); 
    fclose($document); 

das Sie ein Array $ contents

print_r($contents); 
0

Tun Sie dies geben:

// $myarray is the array 
file_put_contents('my_file', serialize($myarray)); 

// Later ... 
$array = unserialize(file_get_contents('my_file')); 

können Sie erraten, was serialize oder unserialize tut. Aber lesen Sie mehr in Dokumenten, um genauer zu lernen.

@VladimirKovpak Antwort wird auch funktionieren, aber für einfache Arrays. Mit der Serialisierung können Sie fast jedes Objekt speichern und es zurückbekommen.

Wenn Sie mehr Kontrolle über den Serialisierungsprozess benötigen, schauen Sie sich die __sleep und __wakeup von docs an.

Verwandte Themen