2016-05-26 6 views
2

データを配列形式で保存した後、このデータを変数に読み込みたいので、この変数は配列のように動作する必要があります。ファイルから保存された配列をフェッチして配列のようにアクセスする方法

私は私のPC上のファイルがあるとします。C: /test.txtをし、それが配列含まれています

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

は今、私は法の下に使用してこのデータを取得しています:

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

今私は$のようなデータを表示しますが、この変数のデータ型をチェックすると、の文字列が表示されます。

私はまた、型キャストを使用して配列に、この変数を変換した:

$test1 = (Array) $test; 

しかし$ test1のから任意のインデックスを取得しようとしたとき、それは不正な文字列のエラーが表示されます。

誰かが私を助けることができます。

+0

変換後にデータ型を取得しようとしましたか? –

+0

はい私はしようとした後、それは配列としてデータ型を示してもまだ新しい変数から任意のインデックスを取得できませんでした。 – Ankit

+0

代わりにJSONとして保存できますか? '{" first_name ":" John "、" last_name ":" Doe "、" email ":" johndoe @ gmail。com "}' –

答えて

0

C:

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

/test.php別のファイル:C:/test.json

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

またはJSONを保存、ファイル内

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

と、別のファイルに:

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

回答ありがとうございますが、保存する100個のファイルがあり、後で取得されるためファイルをインクルードできません – Ankit

+1

100個のファイルをjson形式で保存することができます。その後、$ array = –

+0

@あなたのコードを '$ myfile =" C:/test.txt "と入力してください。 $ array = inclde($ myfile);' – splash58

0

が、これは

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

これは、これを行うにあなたの配列$内容

print_r($contents); 
0

を与える試してみてください。

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

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

あなたがserializeまたはunserializeが何をするかを推測することができます。しかし、より具体的に学ぶためには、ドキュメントで詳細を読んでください。

@VladimirKovpakの答えは単純な配列でも動作します。シリアライゼーションを使用すると、ほぼすべてのオブジェクトを保存して戻すことができます。

シリアル化プロセスをさらに制御する必要がある場合は、__sleep__wakeupdocsから探してください。

関連する問題