標籤:層級 子目錄 war 超出 sts string add 而且 als
php rmdir()函數
rmdir ― 刪除空目錄
文法:
bool rmdir ( string $dirname [, resource $context ] )
嘗試刪除 dirname 所指定的目錄。 該目錄必須是空的,而且要有相應的許可權。 失敗時會產生一個E_WARNING層級的錯誤。
參數:
1.dirname:目錄的路徑。
2.context:在 PHP 5.0.0 中增加了對上下文(Context)的支援。
php rmdir()刪除非空目錄
上面已經說過,rmdir()函數只能刪除空目錄,如果是非空目錄就需要先進入到目錄中,使用unlink()函數將目錄中的每個檔案都刪除掉,再回來將這個空目錄刪除。如果目錄中還存在子目錄,而且目錄也非空,就需要使用遞迴的方法。自訂遞迴函式刪除目錄的原始碼如下:
<?php
function delDir($directory){//自訂函數遞迴的函數整個目錄
if(file_exists($directory)){//判斷目錄是否存在,如果不存在rmdir()函數會出錯
if([email protected]($directory)){//開啟目錄返回目錄資源,並判斷是否成功
while($filename=readdir($dir_handle)){//遍曆目錄,讀出目錄中的檔案或檔案夾
if($filename!=‘.‘ && $filename!=‘..‘){//一定要排除兩個特殊的目錄
$subFile=$directory."/".$filename;//將目錄下的檔案與目前的目錄相連
if(is_dir($subFile)){//如果是目錄條件則成了delDir($subFile);//遞迴調用自己刪除子目錄
}
if(is_file($subFile)){//如果是檔案條件則成立unlink($subFile);//直接刪除這個檔案
}
}
}
closedir($dir_handle);//關閉目錄資源
rmdir($directory);//刪除空目錄
}
}
}
delDir("mydir");//調用delDir函數
?>
<?php
$password=‘testtest.com‘;
echo crypt($password);
//輸出:$1$DZ3.QX2.$CQZ8I.OfeepKYrWp0oG8L1
/*第二個$與第三個$之間的八個字元是由PHP產生的,每重新整理一次就變一次
*/
echo "<hr>";
echo crypt($password,"testtest");
//輸出:tesGeyALKYm3A
//當我們要加自訂的鹽值時,如例子中的testtest作為第二個參數直接加入, 超出兩位字元的會截取前兩位
echo "<hr>";
echo crypt($password,‘$1$testtest$‘);
//輸出:$1$testtest$DsiRAWGTHiVH3O0HSHGoL1
/*crypt加密函數有多種鹽值加密支援,以上例子展示的是MD5散列作為鹽值,該方式下
鹽值以$1$$的形式加入,如例子中的testtest加在後兩個$符之間,
超出八位字元的會截取前八位,總長為12位;crypt預設就是這種形式。
*/
echo "<hr>";
//crypt還有多種鹽值加密支援,詳見手冊
Sha1加密:
string sha1 ( string $str [, bool $raw_output = false ]); //跟md5很像,不同的是sha1()預設情況下返回40個字元的散列值,傳入參數性質一樣,第一個為加密的字串,第二個為raw_output的布爾值,預設為false,如果設定為true,sha1()則會返回原始的20 位原始格式報文摘要
<?php
$my_intro="zhouxiaogang";
echo sha1($my_intro); // b6773e8c180c693d9f875bcf77c1202a243e8594
echo "<hr>";
//當然,可以將多種密碼編譯演算法混合使用
echo md5(sha1($my_intro));
//輸出:54818bd624d69ac9a139bf92251e381d
//這種方式的雙重加密也可以提高資料的安全性
非對稱式加密
非對稱式加密演算法需要兩個密鑰來進行加密和解密,這兩個秘鑰是公開密鑰(public key,簡稱公開金鑰)和私人密鑰(private key,簡稱私密金鑰);
,甲乙之間使用非對稱式加密的方式完成了重要訊息的安全傳輸。
乙方產生一對密鑰(公開金鑰和私密金鑰)並將公開金鑰向其它方公開。
得到該公開金鑰的甲方使用該金鑰組機密資訊進行加密後再發送給乙方。
乙方再用自己儲存的另一把專用密鑰(私密金鑰)對加密後的資訊進行解密。乙方只能用其專用密鑰(私密金鑰)解密由對應的公開金鑰加密後的資訊。
在傳輸過程中,即使攻擊者截獲了傳輸的密文,並得到了乙的公開金鑰,也無法破解密文,因為只有乙的私密金鑰才能解密密文
同樣,如果乙要回複加密資訊給甲,那麼需要甲先公布甲的公開金鑰給乙用於加密,甲自己儲存甲的私密金鑰用於解密。
在非對稱式加密中使用的主要演算法有:RSA、Elgamal、背包演算法、Rabin、D-H、ECC(橢圓曲線密碼編譯演算法)等。 其中我們最見的演算法是RSA演算法
以下是從網上摘抄的一段PHP通過openssl實現非對稱式加密的演算法
php rmdir使用遞迴函式刪除非空目錄的方法