网站开发的付款方式,网上定做衣服的网站,域名是什么,网易企业邮箱登录口强撸项目系列总目录在000集
PHP要怎么学–【思维导图知识范围】 文章目录 本系列校训本项目使用技术 上效果图phpStudy 设置导数据库项目目录如图#xff1a;代码部分#xff1a;主页 配套资源作业#xff1a; 本系列校训
用免费公开视频#xff0c;卷飞培训班哈人…强撸项目系列总目录在000集
PHP要怎么学–【思维导图知识范围】 文章目录 本系列校训本项目使用技术 上效果图phpStudy 设置导数据库项目目录如图代码部分主页 配套资源作业 本系列校训
用免费公开视频卷飞培训班哈人打死不报班赚钱靠狠干 只要自己有电脑前后项目都能搞N年苦学无人问一朝成名天下知
本项目使用技术
无类PHP类写法ThinkPHP框架其它框架*
环境
版本mysql版本运行工具编辑工具5.4.45Apache5.5(phpstudy自带)phpstudy2018VSCode
上效果图
在php 当中上传图片上传照片这种小功能还是挺方便的。注意没有登陆 所以在线相册这个小项目还是有一定的价值的。比如某宝好象人家不会用这么LOW的那就作业吧 修改了代码可以搜索了。
phpStudy 设置
网站目录不能有中文或空格就乖乖的用C语言能识别的变量名 导数据库
打开mysql-front 或navicat 注意数据库名email 超级用户root 密码123456 运行本例附件即可。最后导入数据库成功的截图如下 项目目录如图 颜色主题
代码部分
主页
?php
require ./common/init.php;
// 接收参数
$id input(get, id, d);
$sort input(get, sort, s);
$action input(post, action, s);
// 判断相册是否存在
if ($id !album_data($id)) {exit(相册不存在);
}
// 新建相册
if ($action new) {album_new($id, input(post, name, s));
}
// 上传图片
elseif ($action upload) {album_upload($id, input($_FILES, upload, a));
}
// 删除相册
elseif ($action delete) {album_delete(input(post, action_id, d));
}
// 设为封面
elseif ($action pic_cover) {album_picture_cover(input(post, action_id, d), $id);
}
// 删除图片
elseif ($action pic_delete) {album_picture_delete(input(post, action_id, d));
}
// 查询相册名称作为网页标题
$title album_data($id)[name] ?: 首页;
// 查询导航栏
$nav album_nav($id);
// 查询相册列表
$list album_list($id, $sort);
// 载入模板
require ./view/index.html;主页的html
!DOCTYPE html
htmlheadmeta charsetUTF-8title?htmlspecialchars($title)? - 在线相册/titlelink relstylesheet href./css/style.css/headbody?php require ./view/common/top.html; ?div classcontainerdiv classoptdiv classopt-sorta class?($sort!old) ? curr : ? href?id?$id?最新的/aa class?($sortold) ? curr : ? href?id?$id?sortold最旧的/a/divdiv classopt-newform methodpostinput typehidden nameaction valuenewinput typetext namename placeholder输入相册名称 requiredinput typesubmit value创建相册/form/divdiv classopt-uploadform methodpost enctypemultipart/form-datainput typehidden nameaction valueuploadinput typefile nameupload requiredinput typesubmit value上传图片/form/divdiv classopt-searchform methodget actionsearch.phpinput typehidden nameaction valuesearchinput typetext namesearch placeholder输入关键词 requiredinput typesubmit value搜索/form/div/divdiv classalbum?php if(empty($list[album]) empty($list[picture])): ?div classalbum-tip该相册为空。/div?php endif; ?!-- 子相册列表 --?php foreach ($list[album] as $v): ?div classalbum-list album-dirdiv classalbum-list-contentdiv classalbum-list-tips相册/diva href?id?$v[id]?img src./covers/?$v[cover] ?: nopic.png?/adiv classalbum-list-descpa href?id?$v[id]??htmlspecialchars($v[name])?/a (?$v[total]?)/p/divdiv classalbum-list-optform methodpostinput typehidden nameaction_id value?$v[id]?button classjs-del nameaction valuedelete删除/button/form/div/div/div ?php endforeach; ?!-- 图片列表 --?php foreach($list[picture] as $v): ?div classalbum-listdiv classalbum-list-contenta hrefshow.php?id?$v[id]?img src./thumbs/?$v[save]?/adiv classalbum-list-descpa hrefshow.php?id?$v[id]??htmlspecialchars($v[name])?/a/p/divdiv classalbum-list-optform methodpostinput typehidden nameaction_id value?$v[id]??php if($id): ?button nameaction valuepic_cover设为封面/button?php endif; ?button classjs-del nameaction valuepic_delete删除/button/form/div/div/div?php endforeach; ?/div/div?php require ./view/common/footer.html; ?script src./js/common.js/script/body
/html后台关键逻辑代码
?php/*** 查询相册记录缓存查询结果* param int $id 相册ID* return array 查询结果数组不存在时返回false*/
function album_data($id)
{static $data [0 false];if (!isset($data[$id])) {$data[$id] db_fetch_row(SELECT pid,path,name,cover,total FROM album WHERE id$id) ?: false;}return $data[$id];
}/*** 查询相册层级导航* param int $id 相册ID* return array 查询结果数组不存在时返回空数组*/
function album_nav($id)
{$path preg_replace(/^0,/, , (album_data($id)[path] . $id));return $path ? db_fetch_all(SELECT id,name FROM album WHERE id IN ($path) ORDER BY FIELD(id,$path)) : [];
}/*** 查询当前相册所有的子相册和图片* param int $id 相册ID* param string $sort 排序new、old* return array 查询结果数组*/
function album_list($id, $sort)
{$sort ($sort old) ? ASC : DESC;return [album db_fetch_all(SELECT id,name,cover,total FROM album WHERE pid$id ORDER BY id $sort),picture db_fetch_all(SELECT id,name,save FROM picture WHERE pid$id ORDER BY id $sort)];
}/*** 创建相册* param int $pid 新相册的上级目录ID* param string $name 新相册的名称*/
function album_new($pid, $name)
{$data album_data($pid);if (substr_count($data[path], ,) config(LEVEL_MAX)) {return tips(无法继续创建子目录已经达到最多层级);}/* if (!preg_match(/^\w{1,12}$/, $name)) {return tips(无法创建相册只允许1~12位字母、数字、下划线组成。);} */$name mb_strimwidth(trim($name), 0, 12);db_exec(INSERT INTO album (pid,path,name) VALUES (?,?,?), iss, [$pid, ($data[path] . $pid . ,), ($name ?: 未命名)]);
}/*** 上传图片* param int $pid 图片所属的相册ID* param array $file 上传文件 $_FILES[xx] 数组*/
function album_upload($pid, $file)
{// 检查文件是否上传成功if (true ! ($error upload_check($file))) {return tips(文件上传失败$error);}// 检查文件类型是否正确$ext pathinfo($file[name], PATHINFO_EXTENSION);if (!in_array(strtolower($ext), config(ALLOW_EXT))) {return tips(文件上传失败只允许扩展名 . implode(, , config(ALLOW_EXT)));}// 生成文件名和保存路径$new_dir date(Y-m/d); // 生成子目录$new_name md5(microtime(true)) . .$ext; // 生成文件名// 创建原图保存目录$upload_dir ./uploads/$new_dir;if (!is_dir($upload_dir) !mkdir($upload_dir, 0777, true)) {return tips(文件上传失败无法创建保存目录);}// 创建缩略图保存目录$thumb_dir ./thumbs/$new_dir;if (!is_dir($thumb_dir) !mkdir($thumb_dir, 0777, true)) {return tips(文件上传失败无法创建缩略图保存目录);}// 保存上传文件if (!move_uploaded_file($file[tmp_name], $upload_dir/$new_name)) {return tips(文件上传失败无法保存文件);}// 创建缩略图thumb($upload_dir/$new_name, $thumb_dir/$new_name, config(THUMB_SIZE));// 保存到数据库$name mb_strimwidth(trim(pathinfo($file[name], PATHINFO_FILENAME)), 0, 80);db_exec(INSERT INTO picture (pid,name,save) VALUES (?,?,?), iss, [$pid, $name, $new_dir/$new_name]);$pid album_total($pid, 1);
}/*** 修改相册的total字段* param int $id 相册ID* param string $method 操作1、-1*/
function album_total($id, $method 1)
{$path preg_replace(/^0,/, , (album_data($id)[path] . $id));$path db_exec(UPDATE album SET totaltotal$method WHERE id IN ($path));
}/*** 删除相册* param int $id 相册ID*/
function album_delete($id)
{$data album_data($id);if ($data[total] 0) {return tips(删除失败只能删除空相册);}if (db_fetch_row(SELECT 1 FROM album WHERE pid$id)) {return tips(删除失败该相册含有子相册);}db_exec(DELETE FROM album WHERE id$id);$data[cover] is_file(./covers/{$data[cover]}) unlink(./covers/{$data[cover]});
}/*** 查询图片记录* param int $id 图片ID* return array 查询结果数组不存在时返回null*/
function album_picture_data($id)
{return db_fetch_row(SELECT pid,name,save FROM picture WHERE id$id);
}/*** 设置图片为相册封面* param int $id 图片ID* param int $pid 相册ID*/
function album_picture_cover($id, $pid)
{if (!$data album_picture_data($id)) {return tips(设置失败图片不存在);}$cover_dir ./covers/ . dirname($data[save]);if (!is_dir($cover_dir) !mkdir($cover_dir, 0777, true)) {return tips(设置失败无法创建封面图保存目录);}$cover_del album_data($pid)[cover];is_file(./covers/$cover_del) unlink(./covers/$cover_del);copy(./thumbs/{$data[save]}, ./covers/{$data[save]});db_exec(UPDATE album SET cover? WHERE id?, si, [$data[save], $pid]);tips(设置成功);
}/*** 删除图片* param int $id 图片ID*/
function album_picture_delete($id)
{if (!$data album_picture_data($id)) {return tips(删除失败图片不存在);}db_exec(DELETE FROM picture WHERE id$id);is_file(./thumbs/{$data[save]}) unlink(./thumbs/{$data[save]});is_file(./uploads/{$data[save]}) unlink(./uploads/{$data[save]}); $data[pid] album_total($data[pid], -1);
}
配套资源
PHP在线相册-强撸项目 https://download.csdn.net/download/dearmite/88084818
作业
PHP在线相册美化前台页面