我們經常會碰到一些問題像目錄權限無法訪問了,這時可能有幾百或上千個文件或文件目錄,下面我寫了一個利用php來批量更改目錄權限的實例,代碼如下:
- <?php
- //獲取文件目錄列表,該方法返回數組
- function getDir($dir=”) {
- $dir=emptyempty($dir) ? getcwd() : $dir;
- $dirArray[]=NULL;
- if (false != ($handle = opendir ( $dir ))) {
- $i=0;
- while ( false !== ($file = readdir ( $handle )) ) {
- //去掉”“.”、“..”以及帶“.xxx”后綴的文件
- if ($file != “.” && $file != “..”&&!strpos($file,”.”)) {
- $dirArray[$i]=$file;
- $i++;
- }
- }
- //關閉句柄
- closedir ( $handle );
- }
- return $dirArray;
- }
- ?>
- <!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”>
- <html xmlns=”http://www.w3.org/1999/xhtml”>
- <head>
- <meta http-equiv=”Content-Type” content=”text/html; charset=utf-8″ />
- <title>目錄權限批量設置</title>
- <style>
- body {
- font:12px/22px “Microsoft YaHei”, SimSun;
- }
- input, select, texteare, button {
- font-family:”Microsoft YaHei”, SimSun;
- }
- </style>
- </head>
- <body>
- <?php
- if(emptyempty($_POST)){
- ?>
- <form action=”" method=”post” onsubmit=”return check();”>
- <h2>當前目錄:<?php echo getcwd();?></h2>
- <div>
- <fieldset>
- <legend>網站目錄</legend>
- <div>
- <ul>
- <?php
- $dirArr=getDir();
- if(is_array($dirArr)){
- foreach($dirArr as $dir){
- ?>
- <li>
- <label>
- <input name=”directory[]” type=”checkbox” value=”<?php echo $dir;?>” />
- <?php echo $dir;?></label>
- </li>
- <?php
- }
- }
- ?>
- </ul>
- <div>
- <input id=”CheckALL” type=”button” onclick=”checkAll();” value=”全選” />
- <input id=”NoCheckAll” type=”button” onclick=”noCheckAll();” value=”全不選” />
- <input id=”inverse” type=”button” onclick=”inverseCheck()” value=”反選” />
- </div>
- </div>
- </fieldset>
- </div>
- <div>
- <fieldset>
- <legend>目錄權限</legend>
- <div>
- <select name=”Perm”>
- <option value=”N” selected=”selected”>N-無</option>
- <option value=”R”>R-讀取</option>
- <option value=”W”>W-寫入</option>
- <option value=”C”>C-更改(寫入)</option>
- <option value=”F”>F-完全控制</option>
- </select>
- <!–
- /G user:perm 賦予指定用戶訪問權限。
- Perm 可以是: R 讀取
- W 寫入
- C 更改(寫入)
- F 完全控制
- /P user:perm 替換指定用戶的訪問權限。
- Perm 可以是: N 無
- R 讀取
- W 寫入
- C 更改(寫入)
- F 完全控制
- –>
- </div>
- </fieldset>
- </div>
- <div>
- <fieldset>
- <legend>來賓帳戶</legend>
- <div>
- Internet 來賓帳戶: <input name=”User” id=”User” type=”text” value=”" />
- </div>
- </fieldset>
- </div>
- <div style=”margin-top:20px; padding-left:20px;”>
- <input type=”submit” value=”提交” />
- </div>
- </form>
- <script type=”text/javascript”>
- var all = document.getElementById(“CheckALL”); //全選
- var single = document.getElementsByName(“directory[]“); //選項
- var noAll = document.getElementById(“NoCheckAll”); //不全選
- var inverse = document.getElementById(“inverse”); //反選
- var User = document.getElementById(“User”); //SiteId
- function checkTrue() {
- for (var i = 0; i < single.length; i++) {
- single[i].checked = true;
- }
- }
- function checkFalse() {
- for (var i = 0; i < single.length; i++) {
- single[i].checked = false;
- }
- }
- //全選
- function checkAll() {
- if (all.disabled == false) {
- noAll.disabled = false;
- checkTrue();
- }
- else {
- noAll.disabled = true;
- checkFalse();
- }
- all.disabled = true;
- }
- //全不選
- function noCheckAll() {
- if (noAll.disabled == false) {
- all.disabled = false;
- checkFalse();
- }
- else {
- all.checked = true;
- checkTrue();
- }
- noAll.disabled = true;
- }
- //反選
- function inverseCheck() {
- noAll.disabled = false;
- all.disabled = false;
- for (var i = 0; i < single.length; i++) {
- single[i].checked = !single[i].checked;
- }
- }
- function check(){
- var checkd_sum;
- checkd_sum=0;
- for (var i = 0; i < single.length; i++) {
- if(single[i].checked ==true){
- checkd_sum++;
- }
- }
- if(checkd_sum==0){
- alert(‘請先選擇目錄!’);
- return false;
- }
- if(User.value==”"){
- alert(‘請輸入Internet 來賓帳戶!’);
- return false;
- }
- return true;
- }
- </script>
- <?php
- }else{
- $directorys=@$_POST['directory'];
- $Perm=trim(@$_POST['Perm']);
- $User=trim(@$_POST['User']);
- ?>
- <div>
- <pre>
- @echo off
- <?php
- $BASE_DIR=getcwd();
- if(is_array($directorys)){
- foreach($directorys as $directory ){
- echo <<<EOF
- echo Y|cacls {$BASE_DIR}/{$directory} /T /E /C /G {$User}:{$Perm} <br/>
- EOF;
- }
- }
- ?>
- pause
- </pre>
- </div>
- <?php
- }
- ?>
- </body>
- </html>
新聞熱點
疑難解答