ホームページ >バックエンド開発 >PHPチュートリアル >ThinkPHP キャッシュをクリア/フォルダー上のすべてのファイルを削除
ThinkPHP キャッシュクリア/フォルダー内のすべてのファイルを削除
今日は ThinkPHP キャッシュクリア関数を作成しました。インターネット上で公開されており、比較的簡単な記述方法がありますが、組み込みクラスです。このクラスを見つけたとき、私は長い間探していたので、PHP を使用してフォルダー内のすべてのファイルを削除し、手間をかけずに次のコードを貼り付けました。
/*このメソッドは、フォルダー内のすべてのファイルを削除するために使用されるパブリック メソッドです
* $path はファイル
のパスです
* $fileName フォルダー名
* */
パブリック関数 rmFile($path,$fileName){
//スペースを削除
$path = preg_replace('/(/){2,}|{\}{1,}/','/',$path);
使用
$path.= $fileName;
//このファイルがファイル ディレクトリであるかどうかを判断します
if(is_dir($path)){
// ファイルを開きます
if ($dh = opendir($path)){
””””” //ファイルディレクトリ名を横断する
while(($ file = readdir($ dh))!= false){
// 1 つずつ削除
を通して
}
同時に良いスタートを切っている
clositir($ dh);
}
}
//キャッシュを 1 つずつ削除します
パブリック関数cache(){
//フロントデスクは ajax get を使用して送信します。ここで最初に判断します
if($_GET['type']){
//ファイルの絶対パスを取得します
$abs_dir=dirname(dirname(dirname(dirname(__FILE__))));
//削除するフォルダー内のファイルと結合します
$pa=$abs_dir.'AdminRuntime\';
//上に書いたメソッドを呼び出します
$this->rmFile($pa,$type);
//プロンプトメッセージに戻ります
}else{
$this->display();
}
//ワンクリックですべてのキャッシュをクリア
パブリック関数 allrun(){
////フロントデスクは ajax get を使用して送信します。ここで最初に判断します
if($_GET['type']){
$type=$_GET['type'];
$name=explode('-', $type);
//上記のメソッドをループ内で呼び出します
の ($i=0;$i
//ファイルの絶対パスを取得します
$abs_dir=dirname(dirname(dirname(dirname(__FILE__))));
//結合パス
$pa=$abs_dir.'AdminRuntime\';
//フォルダー内のすべてのファイルを削除するメソッドを呼び出します
$this->rmFile($pa,$name[$i]);
}
}else{
$this->display();
}
}
html ファイル
//これは ajax get 経由で送信されます
<スクリプトタイプ="text/javascript">
$(関数(){
$('#button').click(function(){
If(confirm("テンプレート キャッシュ ディレクトリをクリアしてもよろしいですか?")) {
var $type=$('#type').val();
var $mess=$('#mess');
$.getJSON('__URL__/cache',{type:$type},function(json){
If(json.status==1){
$mess.slideDown(3000,function(){
$mess.css('color:red');
}).html(json.info);
}else{
$mess.slideDown(3000,function(){
$mess.css('color:red');
}).html(json.info);
}
});
}else{
false を返します。
});
});
<フォームアクション=""メソッド="get">
&lt; td id = "smes"&gt;&lt;/td&gt; //ワンクリックですべてクリア <フォームアクション=""メソッド="get">
|