用来解析.htgroup文件的PHP类


Posted in PHP onSeptember 05, 2012

.htgroup 文件示例:
admin: user2
editor: user1 user3
writer: user3

class Htgroup { 
private $file = ''; 
private function write($groups = array()) { 
$str = ''; 
foreach ($groups as $group => $users) { 
$users_str = ''; 
foreach ($users as $user) { 
if (!empty($users_str)) { 
$users_str .= ' '; 
} 
$users_str .= $user; 
} 
$str .= "$group: $users_str\n"; 
} 
file_put_contents($this -> file, $str); 
} 
private function read() { 
$groups = array(); 
$groups_str = file($this -> file, FILE_IGNORE_NEW_LINES); 
foreach ($groups_str as $group_str) { 
if (!empty($group_str)) { 
$group_str_array = explode(': ', $group_str); 
if (count($group_str_array) == 2) { 
$users_array = explode(' ', $group_str_array[1]); 
$groups[$group_str_array[0]] = $users_array; 
} 
} 
} 
return $groups; 
} 
public function __construct($file) { 
if (file_exists($file)) { 
$this -> file = $file; 
} else { 
die($file." doesn't exist."); 
return false; 
} 
} 
public function addUserToGroup($username = '', $group = '') { 
if (!empty($username) && !empty($group)) { 
$all = $this -> read(); 
if (isset($all[$group])) { 
if (!in_array($username, $all[$group])) { 
$all[$group][] = $username; 
} 
} else { 
$all[$group][] = $username; 
} 
$this -> write($all); 
} else { 
return false; 
} 
} 
public function deleteUserFromGroup($username = '', $group = '') { 
$all = $this -> read(); 
if (array_key_exists($group, $all)) { 
$user_index = array_search($username, $all[$group]); 
if ($user_index !== false) { 
unset($all[$group][$user_index]); 
if (count($all[$group]) == 0) { 
unset($all[$group]); 
} 
$this -> write($all); 
} 
} else { 
return false; 
} 
} 
}

$groupHandler = new Htgroup('/home/myuser/.htgroup'); 
// Add user 'user1' to group 'admin' in .htgroup. Group will be automatically created if it doesn't exist. 
$groupHandler -> addUserToGroup('user1', 'admin'); 
// Delete user 'user1' from group 'admin' in .htgroup. Group will be automatically removed if it doesn't contain any users. 
$groupHandler -> deleteUserFromGroup('user1', 'admin');
PHP 相关文章推荐
用PHP动态创建Flash动画
Oct 09 PHP
PHP系统流量分析的程序
Oct 09 PHP
apache+codeigniter 通过.htcaccess做动态二级域名解析
Jul 01 PHP
使用淘宝IP库获取用户ip地理位置
Oct 27 PHP
PHP+FastCGI+Nginx配置PHP运行环境
Aug 07 PHP
PHP实现克鲁斯卡尔算法实例解析
Aug 22 PHP
phplot生成图片类用法详解
Jan 06 PHP
php实现计算百度地图坐标之间距离的方法
May 05 PHP
PHP获取redis里不存在的6位随机数应用示例【设置24小时过时】
Jun 07 PHP
php mysql数据库操作类(实例讲解)
Aug 06 PHP
php图片合成方法(多张图片合成一张)
Nov 25 PHP
关于laravel框架中的常用目录路径函数
Oct 23 PHP
PHP curl 并发最佳实践代码分享
Sep 05 #PHP
PHP输出数组中重名的元素的几种处理方法
Sep 05 #PHP
PHP中使用crypt()实现用户身份验证的代码
Sep 05 #PHP
通过缓存数据库结果提高PHP性能的原理介绍
Sep 05 #PHP
PHP中使用foreach和引用导致程序BUG的问题介绍
Sep 05 #PHP
php循环语句 for()与foreach()用法区别介绍
Sep 05 #PHP
PHP手机号码归属地查询代码(API接口/mysql)
Sep 04 #PHP
You might like
YB217、YB235、YB400浅听
2021/03/02 无线电
php上传图片存入数据库示例分享
2014/03/11 PHP
mysql_connect localhost和127.0.0.1的区别(网络层阐述)
2015/03/26 PHP
使用PHP+MySql+Ajax+jQuery实现省市区三级联动功能示例
2017/09/15 PHP
PHP实现字符串大小写转函数的功能实例
2019/02/06 PHP
asp.net和asp下ACCESS的参数化查询
2008/06/11 Javascript
《JavaScript高级程序设计》阅读笔记(二) ECMAScript中的原始类型
2012/02/27 Javascript
浅析jquery的js图表组件highcharts
2014/03/06 Javascript
jQuery中的height innerHeight outerHeight区别示例介绍
2014/06/15 Javascript
Kindeditor在线文本编辑器如何过滤HTML
2016/04/14 Javascript
BootStrap中的table实现数据填充与分页应用小结
2016/05/26 Javascript
jquery实现的回旋滚动效果完整实例【附demo源码下载】
2016/09/20 Javascript
Bootstrap的class样式小结
2016/12/01 Javascript
AngularJS实现进度条功能示例
2017/07/05 Javascript
移动端(微信等使用vConsole调试console的方法
2019/03/05 Javascript
Javascript实现一朵从含苞到绽放的玫瑰
2019/03/30 Javascript
vue导入.md文件的步骤(markdown转HTML)
2020/12/31 Vue.js
pycharm下查看python的变量类型和变量内容的方法
2018/06/26 Python
Python3+PyInstall+Sciter解决报错缺少dll、html等文件问题
2019/07/15 Python
Flask框架模板继承实现方法分析
2019/07/31 Python
Python 过滤错误log并导出的实例
2019/12/26 Python
10 套华丽的CSS3 按钮小结
2012/10/03 HTML / CSS
路由表示做什么用的?在linux环境中怎么来配置一条默认路由?
2013/06/07 面试题
环境科学毕业生自荐信
2013/11/21 职场文书
自荐信的基本格式
2014/02/22 职场文书
水毁工程实施方案
2014/04/01 职场文书
干部个人对照检查材料
2014/08/25 职场文书
庆六一文艺汇演活动方案
2014/08/26 职场文书
2014年教师节活动总结
2014/08/29 职场文书
2014最新实习证明模板
2014/10/02 职场文书
2016高考感言
2015/08/01 职场文书
老干部局2015年度工作总结
2015/10/22 职场文书
端午节将至,用Python爬取粽子数据并可视化,看看网友喜欢哪种粽子吧!
2021/06/11 Python
分析Java中Map的遍历性能问题
2021/06/26 Java/Android
Python利用FlashText算法实现替换字符串
2022/03/31 Python
Nginx隐藏式跳转(浏览器URL跳转后保持不变)
2022/04/07 Servers