douye2020 2014-08-10 10:49
浏览 24
已采纳

使用序列化PHP将新数组添加到文本中

I'm trying to make a text file with some information (Date and IP List).

This is a PHP code for a new file:

//File
$History = history.txt";

//Date
$Today = date("d", time());

//New Data
$Data = Array("TIME" => $Today, "HISTORY" => Array(get_ip()));
//Write to text File

$objData = serialize($Data);
$fp = fopen($History, "w");
fwrite($fp, $objData);
fclose($fp);

Result:

Array ( 
[TIME] => 19
[HISTORY] => Array ( [0] => 127.0.0.1 )
)

After that, i need to add every new IP to the HISTORY. i wrote this part:

//Get Old Data
$FileRead = unserialize(file_get_contents($History));
if($FileRead[TIME] = $Today){
  //ADD NEW IP IN HISTORY PART
}

problem is, i don't know how i can add a new IP in my old file HISTORY array. i need to add new IP's and getting result like this:

Array ( 
[TIME] => 19
[HISTORY] => Array ( 
    [0] => 127.0.0.1 
    [1] => 127.12.0.2
    [2] => 127.192.0.1 
    [3] => 127.168.1.5
    [4] => ...
  )
)

how i can do that with serialize function?

  • 写回答

1条回答 默认 最新

  • dp709369831 2014-08-10 11:00
    关注

    Unserialize recreates the array that you serialized so all you have to do is add an occurance to it like so

    //Get Old Data
    $FileRead = unserialize(file_get_contents($History));
    if($FileRead[TIME] = $Today){
    
       // check the array before adding
       print_r( $FileRead):
    
       $FileRead['HISTORY'][] = getip();
    
       // check the array after adding
       print_r( $FileRead):
    
       // and then serialize the data and save back into the file
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥20 给自己本科IT专业毕业的妹m找个实习工作
  • ¥15 用友U8:向一个无法连接的网络尝试了一个套接字操作,如何解决?
  • ¥30 我的代码按理说完成了模型的搭建、训练、验证测试等工作(标签-网络|关键词-变化检测)
  • ¥50 mac mini外接显示器 画质字体模糊
  • ¥15 TLS1.2协议通信解密
  • ¥40 图书信息管理系统程序编写
  • ¥20 Qcustomplot缩小曲线形状问题
  • ¥15 企业资源规划ERP沙盘模拟
  • ¥15 树莓派控制机械臂传输命令报错,显示摄像头不存在
  • ¥15 前端echarts坐标轴问题