PHPについての質問です。
現在、自社サイトで使用している画像の管理画面を作っているのですが、
PHPを使って不要になった画像を削除する部分を作成しております。
しかし、まだ何分初心者なのでわからないところもあり質問させていただきました。
削除用のPHPファイルを作成しておりますが、動作すると以下のエラーが出てしまいます。
Fatal error: Cannot redeclare deletedata() (previously declared in ・・・・・・・・・/php/delete.php:5) in ・・・・・・・・・・・/php/delete.php on line 5
組んだプログラムに問題があると思いますが、この場合どのようにすればよろしいでしょうか。
分かる方アドバイスをお願いします。
<?php
$no = 1;
foreach(glob('../images/slider/*.jpg') as $val){
function deletedata($dir) {
if($dirhandle = opendir($dir)) {
while(false !==($val = readdir($dirhandle))) {
if($val != "." && $val != "..") {
unlink($dir.$val);
}
}
closedir($dirhandle);
}
}
}
?>
A 回答 (6件)
- 最新から表示
- 回答順に表示
No.5
- 回答日時:
../images/slider/ab.jpg
../images/slider/cde.jpg
../images/slider/12.jpg
../images/slider/035.jpg
といったパスにマッチするファイルを全部削除したいだけだったら
array_map('unlink', glob('../images/slider/*.jpg'));
の1行で済みます。
No.4
- 回答日時:
> それから質問の続きなんですが、ディレクトリにあるファイルすべてではなく、一つずつ削除という形でやっていきたいと思うのですが、その場合はどのようにすればよろしいでしょうか。
まず、ディレクトリ内のファイル一覧を取得して表示するページを用意します。
そのページでファイルを選択させ、削除するファイルのファイル名を削除プログラムに渡して、指定されたファイル名のファイルを削除するといった流れでしょうかね。
No.3
- 回答日時:
よくよく見れば foreach の中で関数定義しちゃってますね。
これでは何度も関数定義が実行されるので Cannot redeclare deletedata() って言われちゃいますね。
この回答への補足
ご解答ありがとうございます。
確かにforeachが原因の一つだと思います。
そこの部分を削除したらこのエラー(Cannot redeclare deletedata())は確かに出なくなりました。
それから質問の続きなんですが、ディレクトリにあるファイルすべてではなく、一つずつ削除という形でやっていきたいと思うのですが、その場合はどのようにすればよろしいでしょうか。
今のままですと全て消えてしまいます。
No.2
- 回答日時:
……いや、これ foreach の中で関数定義していないか? PHP でこういうのアリだったけ?
もしそれが OK だとしても、これだとただファイルを削除する関数を定義してるだけじゃないのかなぁ。
No.1
- 回答日時:
deletedata() 関数を定義しているファイルを何度もincludeしていませんか?
「Cannot redeclare deletedata()」は deletedata という名前の関数を何度も定義しようとした場合に出るエラーです。
よくやる間違いは複数個所で同じファイルをincludeしているケースです。
関数定義をしているファイルを読み込む場合は require_once や include_once を使用すると問題は起きないと思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PostgreSQL 画像とカテゴリーを出力したいのですが、取得の条件を付ける方法がわかりません。 2 2022/05/01 18:03
- PHP どうして送信されないのでしょうか? 1 2022/12/09 05:23
- PHP アップロード画像数でCSSを分けることに成功したのですが、画像の横に文字を並べることが出来ません。 3 2023/07/28 17:16
- AJAX JavascriptからPHPへのAjax通信でnullが返ってくる 3 2022/08/03 22:00
- その他(プログラミング・Web制作) ColabでのPytorchのエラー 1 2022/11/19 20:51
- PHP php テーブルが作成できない 1 2022/11/17 23:41
- PHP コメント機能に返信欄を矢印で追加したい 1 2022/05/09 21:17
- Excel(エクセル) エクセル VBA For Next 繰り返しの書き方を教えてください 6 2022/09/01 14:11
- PHP PHPで画像の渡しが上手く行きません。 1 2023/02/02 09:39
- JavaScript clear機能を失わずにファイルアップロード機能を作成したい 3 2023/06/10 16:12
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
index.phpって何ですか? 具体...
-
index.phpに入るには、どうすれ...
-
phpでcookieがうまく保存されない
-
awsにApacheとPHPを入れて、何...
-
値の取り出し方について教えて...
-
オススメのプログラミングスク...
-
PHPSpreadsheetを使って関数を...
-
ワードプレスサイト PHP8.0.25...
-
PHPで訪問回数を表示するカウン...
-
imageフォルダに、画像をリサイ...
-
ECCUBE4のページ管理でPHPを実...
-
入力フォームの空白や改行を制...
-
htmlのエラーについて(デバッグ)
-
PHP8を使うと、大量のWarningが...
-
ファイルアップロードに関して...
-
Q&Aサイトを作成していてURLの...
-
アップロード画像数でCSSを分け...
-
掲示板を作成しておりアップロ...
-
PHP一覧表示した項目にリンクを...
-
PHPでユーザー情報を入力して簡...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
.envファイルの値がmovefile.ym...
-
文字コードが混在するテキスト...
-
is_fileでファイルが存在してい...
-
cakephp views/pagesの中にイ...
-
PHPのファイルロックについて
-
file()を使う時のファイルロック
-
ログイン認証機能には、どんな...
-
MovableTypeでカテゴリー、月別...
-
大きいファイルのオープンでエ...
-
datファイル
-
PHPのif文でその処理を途中で抜...
-
onedrive にexcelファイルをア...
-
FTPコマンドでディレクトリごと...
-
VBSの「MsgBox」について
-
バッチを用いたフォルダの自動移動
-
【file_exists】ファイルが存在...
-
別ファイルの変数を呼び出した...
-
ワードプレス、Contact Form 7...
-
リンク先を隠す方法はないでし...
-
.phpと.incファイルの違いはな...
おすすめ情報