我有一个序列化的值数组保存到文件中,需要更改其中一个变量的值.在示例中,我更改$ 2的值,然后使用新值将整个数组保存回文件中.
是否有更有效的方法来改变单个值而不必读取和写入整个文件/数组.
$data = file_get_contents('./userInfo');
$data = unserialize($data);
extract($data);
$two="this is a altered value";
$userData = array(
'one' => $one,
'two' => $two,
'three' => $three
);
$file=fopen("../userInfo",'w');
fwrite($file, $userData);
fclose($file);
Run Code Online (Sandbox Code Playgroud)
您不需要像这样使用extract()rebuild $userData- 只需访问所需的数组键即可.此外,您可以使用file_put_contents()保存几个步骤
此函数与连续调用fopen(),fwrite()和fclose()以将数据写入文件相同.
新代码:
$filePath = './userInfo';
$data = unserialize( file_get_contents( $filePath ) );
$data['two'] = "this is a altered value";
file_put_contents( $filePath, serialize( $data ) );
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10868 次 |
| 最近记录: |