2016-03-22 6 views
-1

リモートファイルに空の配列がありますが、一時的にオブジェクトを追加したり変更したりします。ただし、オブジェクトの最初の最初のセットを追加した後、配列はこれ以上の値を受け入れません。私のエラーログはunexpected 'Object' (T_STRING), expecting ')'を報告しています。キーワード "Object"は文字列として扱われますので、問題は配列構造から発生していると思います。ここで私は、オブジェクト最初のファイル書き込み後にオブジェクトの配列が変更されない

include 'all_users.php'; 

$francis_udeh = new Admin("francis_udeh"); 
$all_users['francis_udeh'] = $francis_udeh; 

$victor_nwafor = new Member("victor_nwafor"); 
$all_users['victor_nwafor'] = $victor_nwafor; 
$print_arr = print_r($all_users, TRUE); 

$updated_arr = "<?php \n \$all_users = $print_arr; \n?>"; 
file_put_contents('all_users.php', $updated_arr); 

を追加することで使用されるコードは、リモートファイル(ちなみに、私が欲しいものである、)

<?php 
$all_users = Array 
(
[francis_udeh] => Admin Object 
    (
     [name] => francis udeh 
     [pagename] => francis.udeh 
     [can_comment] => 1 
     [can_view_announcements] => 1 
     [profile_pic] => /blog/accounts/assets/user.png 
     [can_delete_comment] => 1 
    ) 

[victor_nwafor] => Member Object 
    (
     [name] => victor nwafor 
     [pagename] => victor.nwafor 
     [can_comment] => 1 
     [can_view_announcements] => 1 
     [profile_pic] => /blog/accounts/assets/user.png 
    ) 

); 

?> 

で次返します。私は

include 'all_users.php'; 
$raheem_sadiq = new Member("raheem_sadiq"); 
$all_users['raheem_sadiq'] = $raheem_sadiq; 
$print_arr = print_r($all_users, TRUE); 

$updated_arr = "<?php \n \$all_users = $print_arr; \n?>"; 
file_put_contents('all_users.php', $updated_arr); 

をしようとすると、しかし、それは私が変更しない配列が得られ、以前の投稿エラーを返します。私は間違って何をしていますか?

答えて

2

コードの先頭にall_users.phpを含めますが、最初はfile_put_contents()の後にはこのファイルの正しいPHPコードではありません。

2

@Indraは既に述べました:print_r()によって与えられた出力は人間が読めるが有効なPHPコードではありません。データストレージ(mysqlなど)を介してデータを渡すことができない場合は、serialize()を使用してファイルに格納することができます。あるいは、json(オブジェクトが同じ種類のデータアクセスオブジェクトであるように見える)を使用してオブジェクトをリモートでインスタンス化することもできます。 希望します。 Greetings

+0

私はまだまだ立ち往生しています。デコード機能が動作しません '$ json_arr = json_encode($ all_users); $ updated_arr = "<?php \ n \ $ all_users = '$ json_arr' \ n?>"; file_put_contents( 'all_users.php'、$ updated_arr); $出力= json_decode( '$ all_users'); var_dump($ output); echo json_last_error(); ' –

+0

@Mmayboy新しいコードの問題点は何ですか?あなたがエラーメッセージを含めて出力を提供しない限り、人々があなたを助けるのは難しいです。 – Chris

+0

また、PHPファイルを動的に作成するのは非常に珍しいことです。 JSONをファイルに書き込んだり、必要なときにそれを読み取ったりするのはなぜですか? – Chris

関連する問題