😀
学習日記 20230911
6:27 2023/09/11
おはようございます。
今日の朝も、少しだけやりましょう。
投稿を編集するパターンにはどういうものがあるだろうか。
1.画像はそのまま、タイトルもしくはコンテンツのみ修正
2.画像を削除
3.画像追加
4.画像削除、画像追加
2-4にはいろいろパターンがあるけど、主なものとしてはこのくらい
もちろん、2-4しながら、テキストを編集というのもあるが、
テキスト編集のバリデーションは簡単なので、
あえて無視。
あとは2-4をどういう順番でバリデーションしていくか。
削除するときは、
削除ボックスにチェックがあるか、
画像枚数合計チェック
してから削除する。
追加するときは、
$_FILES['image']['name']とかがあるか。
あれば、$_FILESを値があるところのみ抽出して、再作成。
件数を確認して、画像枚数合計チェック。
してから、追加する。
7:01 2023/09/11
21:16 2023/09/11
複数画像アップロードした際の$_FILESの中身
array(1) {
["up_image"]=>
array(6) {
["name"]=>
array(3) {
[0]=>
string(23) "desk-g5b22c4658_640.jpg"
[1]=>
string(0) ""
[2]=>
string(0) ""
}
["full_path"]=>
array(3) {
[0]=>
string(23) "desk-g5b22c4658_640.jpg"
[1]=>
string(0) ""
[2]=>
string(0) ""
}
["type"]=>
array(3) {
[0]=>
string(10) "image/jpeg"
[1]=>
string(0) ""
[2]=>
string(0) ""
}
["tmp_name"]=>
array(3) {
[0]=>
string(14) "/tmp/php2OloNm"
[1]=>
string(0) ""
[2]=>
string(0) ""
}
["error"]=>
array(3) {
[0]=>
int(0)
[1]=>
int(4)
[2]=>
int(4)
}
["size"]=>
array(3) {
[0]=>
int(45741)
[1]=>
int(0)
[2]=>
int(0)
}
}
}
を
なんとかして、次のように加工する。
array(1) {
["up_image"]=>
array(6) {
["name"]=>
array(3) {
[0]=>
string(23) "desk-g5b22c4658_640.jpg"
}
["tmp_name"]=>
array(3) {
[0]=>
string(14) "/tmp/php2OloNm"
}
["size"]=>
array(3) {
[0]=>
int(45741)
}
}
}
ここまで省エネ化したい。
期待のものができた。
array(3) {
["name"]=>
array(1) {
[1]=>
string(42) "high-angle-desk-assortment-with-laptop.jpg"
}
["tmp_name"]=>
array(1) {
[1]=>
string(14) "/tmp/phpqTSdgO"
}
["size"]=>
array(1) {
[1]=>
int(461496)
}
}
使用したコード。
foreach ($_FILES['up_image'] as $parent_key => $child_array){
if($parent_key !== 'full_path' && $parent_key !== 'type' && $parent_key !== 'error'){
$up_image_array[$parent_key] = array_filter($child_array);
}
}
さてここからどうしようか。
うーん。
0:00 2023/09/12
Discussion