2016-05-22 12 views
0

だからこそここでトリッキーな部分が来る。 libとvendorという名前のすべてのディレクトリには、特に2つのSubディレクトリ(サブディレクトリとファイルも含まれています)があります。特定のDir名を使用していましたが、これを使用しました。5分以上経過しているすべてのディレクトリを削除したいですか?

<?php 
$dir = $_GET['fname']; 
array_map('unlink', glob("$dir/lib/*.*")); 
rmdir("$dir/lib"); 
array_map('unlink', glob("$dir/vendor/*.*")); 
rmdir("$dir/vendor"); 
array_map('unlink', glob("$dir/*.*")); 
rmdir($dir);` 

私は以前は特定のディレクトリ名を使用していました。しかし、今私はこれを変更したい。 したがって、ユーザーがスクリプトにリダイレクトされると、

5分以上古いディレクトリはすべて削除されます。ディレクトリは です。

すべてのディレクトリには、 というlibとvendorという2つのサブディレクトリのみが含まれています。削除する必要があります。

これらの3つのディレクトリプロジェクト、画像、 アセットを削除しないでください。これらのディレクトリはすべて削除する必要があります。今すぐ

私を助けてください。

+0

、より多くのあるフォルダをチェックし、削除するために、foreachループで機能ディレクトリ

function deldirectory($dir){ $tfile = new RecursiveDirectoryIterator($dir, RecursiveDirectoryIterator::SKIP_DOTS); $files = new RecursiveIteratorIterator($tfile, RecursiveIteratorIterator::CHILD_FIRST); foreach($files as $file) { if ($file->isDir()){ rmdir($file->getRealPath()); } else { unlink($file->getRealPath()); } } return rmdir($dir); } 

コール...あなたはを削除する関数を作成あなたのデータベースとしてフォルダとテキストファイルを使用して正しい?適切なデータベースを使用することをお勧めしますか? MySQLにアクセスできない場合や、サーバー上でセットアップするのが複雑すぎる場合は、MySQLiを使用することができます。これは、セットアップと使用が簡単な軽量データベースとして設計されたわずか1ファイルです。適切なデータベースの利点の多くを持っています。 MySQLiをセットアップした後、SQLで簡単なコマンドを実行して、5分前の行をすべて削除することができます。 – Webeng

+0

MySQLiはSQLiteではありません。上記の答えはSQLiteを参照しています。 – Freddy

+0

そして、このスクリプトは簡単にハイジャックされて任意のフォルダを削除できることに注意してください。ユーザー入力から削除するフォルダを取得しないでください。 – Freddy

答えて

2

これは可能です。まず、私は推測を作ってあげる5分

foreach ($folders as $f){ 
    $lastmodified = filemtime($f); 
    $farray = array("project","images","assets");//These folders are ignored 
    $file_life = 300; 
    if((time() - $lastmodified >= $file_life) && !in_array($f, $farray)){ 
     deldirectory($f); 
    } 
} 
+0

こんにちは、私はmydomainname.com/thescript.phpに行くとき残念ながら、それはちょうど全体のコードをエコーし​​ます。 – Hackinet

+0

<?phpタグを追加しませんでしたか?ここにそのスクリプトを置くことができますか? –

+0

ohol。私が置いていなかった Hackinet

関連する問題