最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

用來解析.htpasswd文件的PHP類

 更新時(shí)間:2012年09月05日 23:19:25   作者:  
有時(shí)候需要獲取.htpasswd文件的內(nèi)容,那么就可以用下面的代碼類了,需要的朋友可以參考下
.htpasswd 文件示例:
user1:{SHA}kGPaD671VNU0OU5lqLiN/h6Q6ac=
user2:{SHA}npMqPEX3kPQTo+x/+ZckHDrIcQI=
user3:{SHA}q1Fh2LTUjjkncp11m0M9WUH5Zrw=
復(fù)制代碼 代碼如下:

class Htpasswd {
private $file = '';
private $salt = 'AynlJ2H.74VEfI^BZElc-Vb6G0ezE9a55-Wj';
private function write($pairs = array()) {
$str = '';
foreach ($pairs as $username => $password) {
$str .= "$username:{SHA}$password\n";
}
file_put_contents($this -> file, $str);
}
private function read() {
$pairs = array();
$fh = fopen($this -> file, 'r');
while (!feof($fh)) {
$pair_str = str_replace("\n", '', fgets($fh));
$pair_array = explode(':{SHA}', $pair_str);
if (count($pair_array) == 2) {
$pairs[$pair_array[0]] = $pair_array[1];
}
}
return $pairs;
}
private function getHash($clear_password = '') {
if (!empty($clear_password)) {
return base64_encode(sha1($clear_password, true));
} else {
return false;
}
}
public function __construct($file) {
if (file_exists($file)) {
$this -> file = $file;
} else {
die($file." doesn't exist.");
return false;
}
}
public function addUser($username = '', $clear_password = '') {
if (!empty($username) && !empty($clear_password)) {
$all = $this -> read();
if (!array_key_exists($username, $all)) {
$all[$username] = $this -> getHash($clear_password);
$this -> write($all);
}
} else {
return false;
}
}
public function deleteUser($username = '') {
$all = $this -> read();
if (array_key_exists($username, $all)) {
unset($all[$username]);
$this -> write($all);
} else {
return false;
}
}
public function doesUserExist($username = '') {
$all = $this -> read();
if (array_key_exists($username, $all)) {
return true;
} else {
return false;
}
}
public function getClearPassword($username) {
return strtolower(substr(sha1($username.$this -> salt), 4, 12));
}
}

使用方法
復(fù)制代碼 代碼如下:

$passwdHandler = new Htpasswd('/home/myuser/.htpasswd');
// Add a user with name 'user1' and password 'I prefer to use passphrase rather than password.' if it doesn't exist in .htpasswd.
$passwdHandler -> addUser('user1', 'I prefer to use passphrase rather than password.');
// Delete the user 'user1' if it exists in .htpasswd.
$passwdHandler -> deleteUser('user1');
// Check if user 'user1' exists in .htpasswd.
if ($passwdHandler -> doesUserExist('user1')) {
// User 'user1' exists.
}

相關(guān)文章

  • PHP輸入輸出流學(xué)習(xí)筆記

    PHP輸入輸出流學(xué)習(xí)筆記

    這篇文章主要介紹了PHP輸入輸出流學(xué)習(xí)筆記,PHP輸入和輸出流是通過php://來訪問的,它允許訪問 PHP 的輸入輸出流、標(biāo)準(zhǔn)輸入輸出和錯(cuò)誤描述符,內(nèi)存中、磁盤備份的臨時(shí)文件流以及可以操作其他讀取寫入文件資源的過濾器,需要的朋友可以參考下
    2015-05-05
  • php微信公眾號開發(fā)之微信企業(yè)付款給個(gè)人

    php微信公眾號開發(fā)之微信企業(yè)付款給個(gè)人

    這篇文章主要為大家詳細(xì)介紹了php微信公眾號開發(fā)之微信企業(yè)付款給個(gè)人,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-10-10
  • 詳談PHP文件目錄基礎(chǔ)操作

    詳談PHP文件目錄基礎(chǔ)操作

    這篇文章主要詳細(xì)介紹了PHP文件目錄基礎(chǔ)操作,并附上大量的操作實(shí)例,非常的詳盡,有需要的朋友可以參考下
    2014-11-11
  • PHP實(shí)現(xiàn)長文章分頁實(shí)例代碼(附源碼)

    PHP實(shí)現(xiàn)長文章分頁實(shí)例代碼(附源碼)

    當(dāng)文章內(nèi)容比較長,為了更好的滿足用戶體驗(yàn)度,我們將文章內(nèi)容分頁顯示處理,而一般分頁處理是在后臺(tái)發(fā)布文章的時(shí)候就將提交的內(nèi)容生成多個(gè)分頁后的靜態(tài)文件。通過本文結(jié)合實(shí)例采用php動(dòng)態(tài)將長文章內(nèi)容進(jìn)行分頁處理
    2016-02-02
  • Yii+MYSQL鎖表防止并發(fā)情況下重復(fù)數(shù)據(jù)的方法

    Yii+MYSQL鎖表防止并發(fā)情況下重復(fù)數(shù)據(jù)的方法

    這篇文章主要介紹了Yii+MYSQL鎖表防止并發(fā)情況下重復(fù)數(shù)據(jù)的方法,分析了MySQL讀鎖定、寫鎖定及Yii實(shí)現(xiàn)MySQL讀寫鎖定的相關(guān)技巧,需要的朋友可以參考下
    2016-07-07
  • tp5框架的增刪改查操作示例

    tp5框架的增刪改查操作示例

    這篇文章主要介紹了tp5框架的增刪改查操作,結(jié)合實(shí)例形式分析了thinkPHP5框架數(shù)據(jù)庫連接及增刪改查相關(guān)操作的控制器與視圖使用技巧,需要的朋友可以參考下
    2019-10-10
  • PHP調(diào)用OpenOffice實(shí)現(xiàn)word轉(zhuǎn)PDF的方法

    PHP調(diào)用OpenOffice實(shí)現(xiàn)word轉(zhuǎn)PDF的方法

    下面小編就為大家?guī)硪黄狿HP調(diào)用OpenOffice實(shí)現(xiàn)word轉(zhuǎn)PDF的方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-11-11
  • Yii中Model(模型)的創(chuàng)建及使用方法

    Yii中Model(模型)的創(chuàng)建及使用方法

    這篇文章主要介紹了Yii中Model(模型)的創(chuàng)建及使用方法,結(jié)合實(shí)例形式較為詳細(xì)的分析了Yii中模型的基本創(chuàng)建技巧,使用方法及相關(guān)注意事項(xiàng),需要的朋友可以參考下
    2015-12-12
  • layui數(shù)據(jù)表格自定義每頁條數(shù)limit設(shè)置

    layui數(shù)據(jù)表格自定義每頁條數(shù)limit設(shè)置

    今天小編就為大家分享一篇layui數(shù)據(jù)表格自定義每頁條數(shù)limit設(shè)置,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-10-10
  • Yii2中YiiBase自動(dòng)加載類、引用文件方法分析(autoload)

    Yii2中YiiBase自動(dòng)加載類、引用文件方法分析(autoload)

    這篇文章主要介紹了Yii2中YiiBase自動(dòng)加載類、引用文件的方法,實(shí)例分析了Yii中的autoload函數(shù)用于自動(dòng)加載類及引用文件的相關(guān)技巧,需要的朋友可以參考下
    2016-07-07

最新評論

新竹县| 林甸县| 丹巴县| 龙里县| 博湖县| 江西省| 新龙县| 迁安市| 康保县| 平塘县| 始兴县| 台前县| 乌拉特后旗| 信宜市| 安吉县| 平阳县| 穆棱市| 麦盖提县| 安宁市| 寻乌县| 西乌珠穆沁旗| 那坡县| 潍坊市| 木里| 长寿区| 云浮市| 大冶市| 漠河县| 屏东市| 邹平县| 长顺县| 平定县| 正安县| 象山县| 华阴市| 定日县| 遂昌县| 观塘区| 南阳市| 富民县| 原平市|