• ベストアンサー

PHP ディレクトリ内のファイルを削除

PHP ディレクトリ内のファイルを削除 PHPでフォームから数枚の画像をサーバへアップロードできるページを作成しました。 これをアップ日から1週経過していれば削除というような処理をしたのですがヒントをいただけますでしょうか。 ディレクトリ内にある画像のアップ日時を取得し、現在の日時から計算し、1週間経過していれば削除、という感じでしょうか。さらにこれが自動化できれば最高です。。 http://www.phppro.jp/qa/871 上記の記事からディレクトリ内のファイル削除自体は参考にできました。 よろしくお願いします。

  • tkmkok
  • お礼率87% (128/146)
  • PHP
  • 回答数1
  • ありがとう数4

質問者が選んだベストアンサー

  • ベストアンサー
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

filectimeかfilemtimeで調整になるでしょうね 自動化についてはcronなどで定期処理を行うか、 ユーザーがアクセスするたびに処理するかのどちらかでしょう <? $d = dir("ディレクトリ"); while (false !== ($filename = $d->read())) { if(is_file($filename)){ $timestamp= filectime($filename); $flg=mktime() > $timestamp + 60*60*24*7; echo $flg.":".$filename."<br>\n"; } } ?>

関連するQ&A

  • ディレクトリについて

    ロリポップのレンタルサーバーでPHPをつかっています。 ディレクトリの意味がよく分からないのですが。アップロードした画像ファイルが沢山あるのですが、そのファイルを素材用としてディレクトリに一つにまとめることができるのでしょうか?? 新しくディレクトリファイルを作って画像ファイルをすべて入れて ディレクトリの中以外の画像ファイルを全部消したら、ホームページ上の画像も全部消えてしまいました。どうしてですか?

    • 締切済み
    • PHP
  • phpで生成したファイルの所有者を変更する方法

    レンタルサーバーを借りてphp+MySQLを使ってブログを作っています。 記事投稿にはWYSIWYGエディタCKEditorとCKFidnerを使用しているのですが、問題があります。CKFinderを使って記事に使う画像をローカルからサーバーにアップロードしたのですが、 CKFinderがサーバー上に生成したファイルの所有者がサーバーになってしまいます。 生成されたファイルを削除するにはサーバー管理者に問い合わせなければ削除できませんでした。 後から記事の画像を編集したり削除したりすることもあると思うので自由に削除できるようにしたいのですが、どこかを設定したりなにかを使ったらこれは解決できるのでしょうか。 レンタルサーバーはJust-Size-Networksのエコノミーです。 http://www.just-size.net/service/compare_plans.php

  • phpでのファイルアップロード

    ファイルのアップロードについてご質問があります。 宜しくお願いします。 基礎phpという本でファイルをアップロードするサンプルがあり、このスクリプトでアップロードされたファイルを格納する『upload』というディレクトリをサーバに作成し、スクリプトを実行して、実際にファイルがアップロードできているかffftpにて『upload』ディレクトリの中を見てみると、なにも表示されませんでした。しかしブラウザから http://myドメイン/upload/ファイル名 にアクセスすると表示されます。 ですのでアップロードはできているがファイルが見えないという状態になっております。また『upload』ディレクトリの削除などもできなくなってしまいます。 サーバの設定が関係しているのかとも思ったのですが、サーバの設定を変更することはできないので、プログラムがわで何とかできないでしょうか? 大変申し訳ありませんが宜しくお願いいたします。 以下がそのコードです。 【up.html】 <html> <head><title>File Uploader</title></head> <body> <form method="post" enctype="multipart/form-data" action="up.php"> <input type="file" name="upfile"> <input type="submit" value="upload"> </form> </body> </html> 【up.php】 <html> <head><title>File Uploader</title></head> <body> <p> file uploader </p> <?php $updir = "./upload/"; $filename = $_FILES['upfile']['name']; if (move_uploaded_file($_FILES['upfile']['tmp_name'], $updir.$filename) == FALSE){ print("Upload failed..."); print($_FILES['upfile']['error']); }else { print("<b>" . $filename . "</b> uploaded!"); } ?> </body> </html>

    • ベストアンサー
    • PHP
  • ディレクトリ削除

    お世話になっております。 画像をアップロード(ディレクトリ生成&そのディレクトリ内に保存)した後、安易な考えか、アップロードし直すという流れのとき、一旦生成したディレクトリを削除し、新たにディレクトリを生成、そしてその中に保存したいと考えておりますが、rmdir関数ではファイルが存在した場合、削除が出来ないと思いますが、ファイルが存在しても全て削除できるようにするには どのようにすれば良いのでしょうか? 一旦ファイルを削除して・・とも考えたのですが、そのような場合、やはりセッションを用いてファイル名を引き渡す?という流れになるのでしょうか? /* ディレクトリ削除メソッド */ function deleteDir($rootPath){ $strDir = opendir($rootPath); while($strFile = readdir($strDir)){ if($strFile != '.' && $strFile != '..'){ //ディレクトリでない場合のみ unlink($rootPath.'/'.$strFile); } } rmdir($rootPath); } deleteDir('/home/httpd/vhosts/test.aaa.com/test/'); このようなコードがとあるサイトで紹介されておりましたが、やはりこれもセッションが必要なのかな?などと・・・お恥ずかしい質問ばかりで恐縮ですが、ご教授頂ければ幸いです。宜しくお願い致します。

    • ベストアンサー
    • PHP
  • ドキュメントルートのphpファイルが削除できない

    ●質問の主旨 ドキュメントルート(var/www/html)に配置した、 phpファイル(quiz.php)をrootユーザーから、root権限で rmコマンドで削除しようとしましたが、 メッセージが表示されるだけで削除できません。なぜでしょうか? ご存知の方がいらっしゃいましたら、ご教示願います。 ●質問の補足 現在のコマンドの状況は以下の通りです。 [root@linuxserver html]#rm quiz.php rm: remove regular file 'quiz.php'? [root@linuxserver html]#ls -l -rw-r--r-- root root 781 Jan 13 22:11 quiz.php またこのquiz.phpファイルはwindowsクライアントPCで作成し、 以下の経過でドキュメントルートにアップロードしました。 1.WinSCPのSFTPで一般ユーザのホームディレクトリに転送 ↓ 2.一般ユーザのホームディレクトリ(/home/user)から cpコマンドでドキュメントルート(var/www/html)にコピペ ●環境 クライアント側:windows8.1 サーバー側:Linux(CentOS6.0) サーバーソフト:Apache2.2.15

  • PHP4でディレクトリ生成をするには

    会員制の写真アップロード掲示板を作っています。 写真をアップロードすることはできたのですが、フォームから送信されたID名で自動的にディレクトリを生成して、その中に、画像をアップロードしたいのですが、そのディレクトリを生成する方法がわかりません。また、アクセス権も777にしないといけないようですが、同時にできる関数などはあるのでしょうか? どうぞ、宜しくお願い致します。

    • ベストアンサー
    • PHP
  • phpにてファイルをアップロード。

    皆様はじめまして。 phpでファイル[jpg画像]をアップロードできるようなブラウザーを作りたいのですが、検索でいろいろ探してはみたのですが、php初心者なのでいまいちよく分かっていません。 いくつかのページを参考にし、とりあえず参照→送信[アップ]できるようなブラウザーまではできたのですが、その先がうまくいきません。 サーバー上のにあるフォルダに画像をアップロードしたいのですが、上にも書いたようにphp初心者なので分からない部分が多くあります。 一連の流れが初心者でも分かるページなどありましたら教えていただけないでしょうか? よろしくお願いします。

    • ベストアンサー
    • PHP
  • FFFTPで、CGI転送後に削除出来ないディレクトリ。

    初めまして。 現在困っていることがありまして、経験者様等のご意見をお聞きしたく、また是非ともアドバイスを頂きたく思い、質問をさせて頂きました。 私はある無料サーバーをお借りして、ホームページを作成しています。 そのサーバー様はWEB上でHTML等は編集出来ず、編集・アップロード等出来る方法はFFFTPを使った転送のみなので、今までFFFTPは使ったことが無く不慣れながら何とかあと少しでホームページが完成、というところまで来ました。 お借りしているサーバー様はCGI・PHPの使用が可能ですので、私は掲示板はCGIにしようと思い、無料で配布されているサイト様からCGIをダウンロードをしてお借りして来ました。 しかし、一度は転送・アップロードをしたものの後にそのCGIが不要になり、使用しないものを置いていても意味は無いので削除しようとしました。 ですが、そのCGIが入っていたディレクトリを削除したくても出来ないのです。 CGIが入っていたディレクトリの中身のCGI本体やファイルなどは削除出来ましたが、CGIが入っていたディレクトリ自体を削除することが出来ません。 ディレクトリのパーミッションを「777」に変更したり、ディレクトリの名前を変更してからも削除を再度試みましたが、出来ませんでした。 Yahoo!などで検索をして色々と調べているのですが、やはり出来ません。 検索をして調べている内に、「サーバーによっては、セキュリティの関係から「.htaccess」や「.csh」などある種のファイルをユーザーから隠しているサーバーが存在するため、そういった特殊なファイルを消したりリネームしたりすることは出来ない」と書かれている文章を見ました。 私は今回削除出来なくなったディレクトリにCGIを置く際に「.htaccess」のファイルもアップロードをしていたので、上記に書かれているようにこれが原因なのでは…と思いまして…。 もしこれが原因の場合、個人の手でどうにかすることは出来ないとも書かれていましたので、一応先程サーバーの管理者様にメールで問い合わせをさせて頂きまして、現在は管理者様からのお返事待ちです。 しかし、まだ他にも何か方法があるのならそれを試したいので、是非ともご意見・アドバイス等お聞かせ頂けると嬉しいです。 文章が上手く纏まらずに伝わりにくいものとなり申し訳ございませんが、よろしくお願い致します。

  • サーバー上のファイルコピー

    PHP4で画像をサーバにアップロードするプログラムを作っているのですが、 画像をアップロードするところまではできたのですが、 その画像を、同じサーバ上の別のディレクトリにコピーしたいのですが、いい方法はあるでしょうか。 形としては、a,b,cというディレクトリがあり、a,b,cそれぞれのディレクトリにtest.jpgという同一の画像をアップしようとしています。 とりあえず、aディレクトリには、画像をアップロードできていて、あとは、b,cにその画像をコピーする形にしようと考えています。

    • ベストアンサー
    • PHP
  • PHPでフォームから任意の画像削除方法

    複数画像がアップロード出来るフォームがあります。 そのフォームはユーザがアップした画像は、フォームにアクセスする度に表示されます。 <form action="upload.php" method="post" enctype="multipart/form-data"> ファイル:<br /> <input type="file" name="upfile" size="30" /><br /> <input type="reset" name="resetfile" value="削除" /><br /> <input type="file" name="upfile" size="30" /><br /> <input type="reset" name="resetfile" value="削除" /><br /> <br /> <input type="submit" value="アップロード" /> </form> 2つの画像をサーバにアップした段階で 2つ目の削除ボタンを押した時に、2つ目の画像だけを削除したいのですが、良い方法が思いつきません。 代替案はチェックボックスですが、デザインが崩れるので避けたいと思っています。 または、javascriptで出来るようですが、あまり得意でないので、出来れば避けたいと思っています。 良い方法があれば、ご教授お願いします。

    • ベストアンサー
    • PHP