用来解析.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 购物车实例(申精)
May 11 PHP
PHP 数据结构 算法 三元组 Triplet
Jul 02 PHP
php批量删除数据库下指定前缀的表以prefix_为例
Aug 24 PHP
php实现把url转换迅雷thunder资源下载地址的方法
Nov 07 PHP
PHP生成随机数的方法实例分析
Jan 22 PHP
php根据生日计算年龄的方法
Jul 13 PHP
CodeIgniter配置之config.php用法实例分析
Jan 19 PHP
CI映射(加载)数据到view层的方法
Mar 28 PHP
浅谈PHP中的
Apr 23 PHP
php与python实现的线程池多线程爬虫功能示例
Oct 12 PHP
php 实现银联商务H5支付的示例代码
Oct 12 PHP
laravel5.6实现数值转换
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
PHP中for循环语句的几种变型
2006/11/26 PHP
php xml留言板 xml存储数据的简单例子
2009/08/24 PHP
解析PHP中一些可能会被忽略的问题
2013/06/21 PHP
分享下PHP register_globals 值为on与off的理解
2013/09/26 PHP
php生成验证码函数
2015/10/20 PHP
thinkphp3.2实现跨控制器调用其他模块的方法
2017/03/14 PHP
PHP 命名空间和自动加载原理与用法实例分析
2020/04/29 PHP
PHP程序员简单的开展服务治理架构操作详解(一)
2020/05/14 PHP
javascript 三种方法实现获得和设置以及移除元素属性
2013/03/20 Javascript
点评js异步加载的4种方式
2015/12/22 Javascript
基于JS实现数字+字母+中文的混合排序方法
2016/06/06 Javascript
关于Javascript回调函数的一个妙用
2016/08/29 Javascript
JS实现快速的导航下拉菜单动画效果附源码下载
2016/11/01 Javascript
vue-resource 拦截器(interceptor)的使用详解
2017/07/04 Javascript
基于Vue制作组织架构树组件
2017/12/06 Javascript
vue2.0 常用的 UI 库实例讲解
2017/12/12 Javascript
vue中使用codemirror的实例详解
2018/11/01 Javascript
Python获取运行目录与当前脚本目录的方法
2015/06/01 Python
python框架django基础指南
2016/09/08 Python
Python实现连接两个无规则列表后删除重复元素并升序排序的方法
2018/02/05 Python
将python图片转为二进制文本的实例
2019/01/24 Python
Python读取xlsx文件的实现方法
2019/07/04 Python
Django项目使用CircleCI的方法示例
2019/07/14 Python
pycharm中显示CSS提示的知识点总结
2019/07/29 Python
详细介绍Python进度条tqdm的使用
2019/07/31 Python
pytorch中如何使用DataLoader对数据集进行批处理的方法
2019/08/06 Python
python 修改本地网络配置的方法
2019/08/14 Python
Django 如何使用日期时间选择器规范用户的时间输入示例代码详解
2020/05/22 Python
Python中的整除和取模实例
2020/06/03 Python
互斥锁解决 Python 中多线程共享全局变量的问题(推荐)
2020/09/28 Python
斯洛伐克香水和化妆品购物网站:Parfemy-Elnino.sk
2020/01/28 全球购物
澳洲CFL商城:CHEMIST FOR LESS(中文)
2021/02/28 全球购物
《哪吒闹海》教学反思
2014/02/28 职场文书
村党支部书记承诺书
2014/05/29 职场文书
基层领导干部“四风”问题批评与自我批评
2014/09/23 职场文书
Linux中sftp常用命令整理
2022/06/28 Servers