设为首页收藏本站CRC32解密2.0更改用户名领夜猫子 本站已运行
搜索
查看: 21|回复: 4
收起左侧

[PHP/ASP/JSP] 64位PHP7实现分卷读写INI格式配置项文件(将INI文件拆分成多个文件放到指定目录读写)

[复制链接]
发表于 2019-4-14 22:30:31 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?加入我们

x



  1. <?php

  2. //将 parse_ini_file 返回的二维数组重组成ini文本
  3. function array_pack_ini($ini_array){
  4.         $return = "";
  5.         foreach($ini_array as $node => $node_data){
  6.                 $return.="[".$node."]\r\n";
  7.                 foreach($node_data as $key => $value){
  8.                         $return.=$key."="."$value"."\r\n";
  9.                 }
  10.         }
  11.         return $return;
  12. }

  13. //读配置项 参数1:文件名 参数2:节名称 参数3:配置项名称 参数4:默认文本(可以留空)
  14. function GetKeyText($file,$node,$key,$value=null){       
  15.         return  parse_ini_file($file,1)[$node][$key] ?? $value;
  16. }

  17. //写配置项 参数1:文件名 参数2:节名称 参数3:配置项名称 参数4:欲写入值
  18. function SetKeyText($file,$node,$key,$value){
  19.         $ini_array = parse_ini_file($file,1);
  20.         $ini_array[$node][$key] = $value;
  21.         return file_put_contents($file,array_pack_ini($ini_array));
  22. }

  23. //取配置节名 参数1:文件名
  24. function GetSectionNames($file){
  25.         $return = array();
  26.         foreach(parse_ini_file($file,1) as $node => $node_data){
  27.                 array_push($return,$node);
  28.         }
  29.         return $return;

  30. }
  31. /*
  32. 分卷读/写配置项
  33. 参数1:目录名 目录中将包含若干个 0以上数字.ini 这些文件。
  34. 参数2:节名称
  35. 参数3:配置项名称
  36. 参数4:默认文本 (读配置项读不到返回的值,写配置项则为写入的值)
  37. 参数5:分卷数 数据越大则分卷数应越多,读写的分卷数不一致将读不出或出现错乱。
  38. */
  39. //====================================================
  40. function GetKeyText_Sub($folder,$node,$key,$value,$sn){
  41.         $num = CRC32($key) % $sn;
  42.         return GetKeyText("{$folder}/{$num}.ini",$node,$key,$value);
  43. }

  44. //分卷写配置项 返回 file_put_contents 的值
  45. function SetKeyText_Sub($folder,$node,$key,$value,$sn){
  46.         $num = crc32($key) % $sn;
  47.         return SetKeyText("{$folder}/{$num}.ini",$node,$key,$value);
  48. }


  49. //====================================================



  50. mkdir("testini");
  51. for($i=0;$i<1024;$i++){
  52. SetKeyText_Sub("testini","Test",$i,md5(rand()),256);
  53. echo GetKeyText_Sub("testini","Test",$i,"ERR",256)."<br>";

  54. }

  55. ?>




复制代码
回复

使用道具 举报

腾讯云服务器安全可靠高性能,多种配置供您选择
发表于 7 天前 | 显示全部楼层
32位的估计快淘汰了
回复 支持 反对

使用道具 举报

发表于 7 天前 | 显示全部楼层
谢谢分享
回复 支持 反对

使用道具 举报

发表于 7 天前 | 显示全部楼层
朵朵 发表于 2019-4-15 07:41
32位的估计快淘汰了

部分驱动已不再为32位更新,建议升级64位,突破各种4gb限制。
回复 支持 反对

使用道具 举报

发表于 7 天前 | 显示全部楼层
我也用的64位
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 加入我们

本版积分规则

小黑屋|手机版|Archiver|官方QQ群|从F到0 ( 蒙ICP备17002595号-1 )

蒙公网安备 15010402000325号

腾讯云安全认证

GMT+8, 2019-4-22 19:59, 18.212.239.56 , Processed in 0.059572 second(s), 29 queries .

Powered by Discuz! X3.4 Licensed © 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表