我正在尝试以纯文本(非二进制)将数组或对象写入文件,但是每当我遍历数组并查看文件时,我都会收到二进制文件。
$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 6420 6539 3936 3630 6665 3039 3535 6663 3862 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)
如果我file_get_contents
对文件执行操作,它可以正确回显,但我希望文件以纯文本形式存储。