配列またはオブジェクトをプレーンテキスト(バイナリではない)でファイルに書き込もうとしていますが、配列をループしてファイルを見ると、代わりにバイナリを受け取っています。
$this->user
そして$this->temp_files['in_file_name']
、事前に関数に渡されます。
$user_array = (array)$this->user;
$data = "";
foreach ($user_array as $key => $value) {
$data .= "$key $value\n";
}
file_put_contents($this->temp_files['in_file_name'], $data);
文字列を渡すだけ$data
でプレーンテキストとしてファイルに書き込まれますが、オブジェクトまたは配列をループすると、バイナリを受け取ります。この配列のプレーンテキストバージョンをファイルに取り込む方法はありますか?
$this->user
Ion_Auth
は、次の呼び出し元からのオブジェクトとしてのデータベース行です。
$this->user =$this->ion_auth->user($this->user_id)->row();
これがファイルの出力の一部です
4461 7465 2054 7565 7364 6179 204f 6374 6f62 6572 2033 302c 2032 3031 3269 6420 320a 6970 5f61 6464 7265 7373 207f 0000 010a 7573 6572 6e61 6d65 2062 7261 6e64 6f6e 2062 6f73 7765 6c6c 0a70 6173 7377 6f72 3431 6639 3838 3066 3639 6131 6664 6635
ユーザー配列のvar_dumpは次のとおりです:(データセキュリティ上の理由からいくつかの値を変更しました)
array (size=22)
'id' => string '2' (length=1)
'ip_address' => string '��' (length=4)
'username' => string 'brandon' (length=15)
'password' => string 'changed' (length=40)
'salt' => null
'email' => string 'brandon@changed.net' (length=27)
'activation_code' => null
'forgotten_password_code' => null
'forgotten_password_time' => null
'remember_code' => string 'changed' (length=40)
'created_on' => string '1337702147' (length=10)
'last_login' => string '1351607850' (length=10)
'active' => string '1' (length=1)
'first_name' => string 'Brandon' (length=7)
'last_name' => string 'changed' (length=7)
'company' => string 'changed' (length=17)
'phone' => string '804-814-changed' (length=12)
'store' => string 'mechanicsville' (length=14)
'delivery' => string '1' (length=1)
'receiveEmails' => string '1' (length=1)
'customerType' => string 'business' (length=8)
'user_id' => string '2' (length=1)
ファイルに対してaを実行するfile_get_contents
と、正しくエコーバックできますが、ファイルがプレーンテキストとして保存されていることを望みます。