乐于分享
好东西不私藏

我把相册做成了本地软件:V0.2.0 开发手记,人脸、地图、场景全自动整理

我把相册做成了本地软件:V0.2.0 开发手记,人脸、地图、场景全自动整理

网盘相册越用越不放心?我自己写了个纯本地相册 V0.2.0:照片默认不上传、不依赖云端。开发时用自己去云南旅游照片验证:人脸自动分组、照片自动上地图、场景自动打标签、相似照片一键去重、按日期归档加水印。

手机相册里的照片,你真的敢让它在云端待着吗?

反正我是不太敢。家庭照片、证件票据、随手拍的工作截图——这些东西放在别人服务器上,我总有种「家被搬走了」的不安。而且网盘相册的套路大家都懂:免费额度越给越少,导入导出越来越难(上传容易,下载速度受限,除非你每个月一直开通网盘会员),等你照片存多了,就被「套牢」了。

所以从 V0.1.0 开始,我就在做一件事:把相册做成一个纯本地的软件(有图片整理和地图显示)。今天它升级到了 V0.2.0。开发期间我拿自己 2024 年的云南旅游相册和壁纸文件(200 张照片)当测试数据,边用边改。这篇聊聊我设计这版时的思路——每个功能是怎么来的,考虑了哪些使用场景。

图片库实测截图(深色主题)——200 张照片按时间自动分组(2024-08 到 2026-08),滚动加载,鼠标悬停轻微放大

看到喜欢的照片可以点星标收藏,收藏页集中查看:

收藏图片实测截图——20 张收藏照片按时间排列,支持取消收藏、打开详情,和图片库一致的浏览体验

01软件的第一原则:照片不出门

本地相册 V0.2.0 是跑在 Windows 10/11 上的桌面软件,默认不上传照片,不依赖任何云端服务。这是我在设计第一天就定下的原则:所有索引都存在本地数据库里,扫描照片时只生成/更新数据库,不复制照片——你原来的文件夹结构一点不动。

第一次使用很简单:添加图片来源文件夹 → 开始扫描并更新数据库 → 开始智能识别→开始相似分析,四步走完,剩下交给后台任务。

软件配置页实测截图——图片来源、人脸识别参数、相似照片阈值、任务日志都在这里。扫描 200 张照片时进度实时显示

02地图:为什么做它?因为我也记不住照片在哪拍的

做地图这个功能,起因特别朴素:出去玩拍的照片,回来想找「在哪儿拍的」,根本想不起来,只能一张张翻。所以 V0.2.0 把经纬度提取做成了扫描时的标准动作——自动读照片 EXIF 里的 GPS 信息,地图页直接按拍摄位置展示。开发时用自己的照片(小米手机 +苹果手机+ 无人机混着拍的)验证,结果地图上直接「点亮」了云南。

地图功能实测截图——100 张带坐标的照片自动落到地图上(云南川滇交界一带),迪庆、鹤庆附近 90 张照片聚成一团,支持普通地图/影像地图切换,同一地点多张照片合并显示数量

放大地图,聚合的标记会拆开成一个个独立位置:

放大地图后,当前视野显示 34 个标记——同一地点的照片自动聚合,放大后逐个散开

点开某个地点,会弹出「该位置附近共有 5 张照片」的列表:

点击地图标记弹出照片列表——「该位置附近共有 5 张照片」(乡城县附近),点任意一张进入详情

再点进单张照片,能看到完整拍摄信息:

图片详情实测截图——拍摄设备(小米)、光圈 f/2.2、快门 1/873 秒、ISO 50、焦距、拍摄日期、经纬度全部解析出来。这张是香格里拉普达措国家公园的湖光山色,右侧小地图直接定位到普达措码头

再看一张竖幅照片的详情:白色雏菊特写,分类标签「场景:竖图」,位置在丽江玫瑰基地附近。

另一张照片(白色雏菊特写)的详情——已分类「场景:竖图」,经纬度定位到丽江玫瑰基地附近,信息同样完整可编辑

这些 EXIF 信息不仅能看,还能编辑:拍摄日期、修改日期、经纬度、人脸归属都能改,改完可以保存回原始图片。比如无人机照片经常不带 GPS,在地图上点一下就能手动补上位置——这样照片换到任何设备上,信息都是对的。

03人脸:设计时我给自己定了三条原则

人脸分组是 V0.2.0 里我花心思最多的功能。做之前我先把手机相册的体验捋了一遍,给自己定了三条设计原则:

  1. 全自动
    扫完就能用,用户一张都不用标,相似的人脸自动归到同一个人物下;
  2. 可纠正
    机器会错,所以改名、合并、删除、重新指定,每个操作都要给用户;
  3. 不重复劳动
    识别过的照片下次跳过,任务断点续跑,照片再多也不怕中途关机。

人脸分类实测截图——72 张人脸照片被自动分成多个人物分组,支持改名字、合并人物、双击查看该人物全部照片

用我自己的相册验证,72 张人脸照片自动分出了十几个人物分组;几个人物混在一起的照片可以手动合并,识别错的能删除或重新指定。有意思的是,连插画角色的人脸都被自动归了组——整个过程,用户只在必要时点几下。

04场景:用户不关心算法,只关心「一眼找到」

用户的照片永远是杂的——旅游风景、工作截图、表情包、海报混在一起,所以我把「按场景标签筛选」做成了第一入口。用我的照片验证,自动生成了这些标签:横幅全景 112 张、天空水面 52 张、竖图 21 张、美食 21 张、夜景 18 张、自然风景 16 张……点一下标签就筛出对应照片。

我的相册里东西很杂——但场景标签把它们区分。

场景分类实测截图——左侧是自动生成的场景标签和数量,右侧是筛选后的照片流。识别不出来的照片进默认分类,不影响浏览

05相似照片 + 照片整理:连拍轰炸党的救星

拍照很多时候需要同时拍摄连拍——同一个场景咔嚓十几张,占空间还难选。所以做了相似照片分析:视觉上接近的照片自动分组,你选一张保留,同组其他照片一键标记删除(只是标记,不会真删磁盘文件)。

另一个痛点是照片散落各处——手机、相机、移动硬盘各一堆。照片整理就是干这个的:选来源文件夹 → 选输出目录 → 按「年/月/日」自动建目录归档,还能顺手加上日期水印(位置、字体、颜色、格式都能调)。这也是 V0.1.0 的初心功能(在V0.2.0版本中,这个功能作为独立的工具使用)

照片整理实测截图——来源文件夹、输出目录、日期来源(拍摄日期优先)、目录层级、日期水印(左下角、微软雅黑、白色)都可以配置,整理进度实时显示

06V0.2.0 相比 V0.1.0 升级了什么

V0.1.0 还只是个「照片整理工具」,V0.2.0 正式升级成「本地相册」:新增了图片库(时间分组浏览、平铺/卡片视图、收藏、多选标记删除)、地图、人脸分类、场景分类、相似照片分析。从「整理一次就完事」变成了「长期管理照片」。

几个我开发时特别在意的细节:

  1. 删除永远是「软删除」
    标记删除只是软件内的状态,不会碰磁盘上的原图,误操作了随时恢复;
  2. 扫描保留手动修改
    你手动改过的位置、人脸归属,重新扫描不会被原始数据覆盖;
  3. 识别任务可断点续跑
    照片多的时候,中途关掉软件,下次接着跑,不白费功夫;
  4. GPU 加速
    检测到 NVIDIA 显卡自动用 CUDA 跑人脸识别,并发数可调(在调试中...)。
  5. 双主题切换
    内置浅色/深色两套主题,右上角月亮图标一键切换。整理照片经常一坐就是晚上,深色模式不刺眼——文章开头那张图片库截图就是深色模式。

🧠 深度思考与延伸

做这个软件最大的感受是:「本地优先」不是技术选择,是价值观选择。

云相册的逻辑是「把你的数据搬过来,然后用免费额度绑住你」;本地软件的逻辑是「数据永远是你的,工具只是帮你整理」。当软件开始替你做主的时候,就该警惕了——你的照片、你的文档、你的数据,凭什么存在别人的服务器上?

「从消费者到创造者」:网盘相册用得不爽,那就自己写一个。V0.2.0 能做图片的浏览、收藏、地图、人脸、场景、相似分析,但还有一堆方向等着做——视频整理、更多图片格式(全景照片等)、……这些都是接下来要琢磨的。

07结尾:下一版做什么,你说了算

V0.2.0 也是我后续日常在用的软件,但好用的工具都是逐步「用」出来的,不是「想」出来的。下一版本(V0.3.0)的优先级,想听听大家的真实需求。

我建了一个微信群,专门聊这个软件的下一版方向:需要增加视频整理吗?RAW 格式支持吗?全景照片?你最头疼的本地照片问题是什么?进群聊(群内有V0.2.0版本的软件下载地址。你的需求可能就出现在 V0.3.0 里。

长按识别二维码,进群聊 V0.3.0 需求

如果二维码过期了,公众号后台回复「本地相册」获取最新进群方式

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-08-12 12:26:54 HTTP/1.1 GET : https://www.yeyulingfeng.com/a/926566.html
  2. 运行时间 : 0.225220s [ 吞吐率:4.44req/s ] 内存消耗:4,795.38kb 文件加载:145
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=1153b4aa4e95483406e69ed0e6254aa7
  1. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/public/index.php ( 0.79 KB )
  2. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/autoload.php ( 0.17 KB )
  3. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/composer/autoload_real.php ( 2.49 KB )
  4. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/composer/platform_check.php ( 0.90 KB )
  5. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/composer/ClassLoader.php ( 14.03 KB )
  6. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/composer/autoload_static.php ( 6.05 KB )
  7. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/helper.php ( 8.34 KB )
  8. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-validate/src/helper.php ( 2.19 KB )
  9. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/ralouphie/getallheaders/src/getallheaders.php ( 1.60 KB )
  10. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/helper.php ( 1.47 KB )
  11. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/stubs/load_stubs.php ( 0.16 KB )
  12. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Exception.php ( 1.69 KB )
  13. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-container/src/Facade.php ( 2.71 KB )
  14. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/deprecation-contracts/function.php ( 0.99 KB )
  15. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/polyfill-mbstring/bootstrap.php ( 8.26 KB )
  16. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/polyfill-mbstring/bootstrap80.php ( 9.78 KB )
  17. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/var-dumper/Resources/functions/dump.php ( 1.49 KB )
  18. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-dumper/src/helper.php ( 0.18 KB )
  19. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/var-dumper/VarDumper.php ( 4.30 KB )
  20. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/guzzlehttp/guzzle/src/functions_include.php ( 0.16 KB )
  21. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/guzzlehttp/guzzle/src/functions.php ( 5.54 KB )
  22. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/App.php ( 15.30 KB )
  23. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-container/src/Container.php ( 15.76 KB )
  24. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/psr/container/src/ContainerInterface.php ( 1.02 KB )
  25. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/provider.php ( 0.19 KB )
  26. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Http.php ( 6.04 KB )
  27. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/helper/Str.php ( 7.29 KB )
  28. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Env.php ( 4.68 KB )
  29. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/common.php ( 0.03 KB )
  30. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/helper.php ( 18.78 KB )
  31. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Config.php ( 5.54 KB )
  32. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/alipay.php ( 3.59 KB )
  33. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/facade/Env.php ( 1.67 KB )
  34. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/app.php ( 0.95 KB )
  35. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/cache.php ( 0.78 KB )
  36. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/console.php ( 0.23 KB )
  37. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/cookie.php ( 0.56 KB )
  38. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/database.php ( 2.48 KB )
  39. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/filesystem.php ( 0.61 KB )
  40. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/lang.php ( 0.91 KB )
  41. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/log.php ( 1.35 KB )
  42. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/middleware.php ( 0.19 KB )
  43. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/route.php ( 1.89 KB )
  44. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/session.php ( 0.57 KB )
  45. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/trace.php ( 0.34 KB )
  46. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/view.php ( 0.82 KB )
  47. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/event.php ( 0.25 KB )
  48. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Event.php ( 7.67 KB )
  49. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/service.php ( 0.13 KB )
  50. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/AppService.php ( 0.26 KB )
  51. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Service.php ( 1.64 KB )
  52. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Lang.php ( 7.35 KB )
  53. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/lang/zh-cn.php ( 13.70 KB )
  54. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/initializer/Error.php ( 3.31 KB )
  55. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/initializer/RegisterService.php ( 1.33 KB )
  56. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/services.php ( 0.14 KB )
  57. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/service/PaginatorService.php ( 1.52 KB )
  58. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/service/ValidateService.php ( 0.99 KB )
  59. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/service/ModelService.php ( 2.04 KB )
  60. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-trace/src/Service.php ( 0.77 KB )
  61. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Middleware.php ( 6.72 KB )
  62. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/initializer/BootService.php ( 0.77 KB )
  63. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/Paginator.php ( 11.86 KB )
  64. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-validate/src/Validate.php ( 63.20 KB )
  65. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/Model.php ( 23.55 KB )
  66. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/Attribute.php ( 21.05 KB )
  67. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/AutoWriteData.php ( 4.21 KB )
  68. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/Conversion.php ( 6.44 KB )
  69. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/DbConnect.php ( 5.16 KB )
  70. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/ModelEvent.php ( 2.33 KB )
  71. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/RelationShip.php ( 28.29 KB )
  72. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/contract/Arrayable.php ( 0.09 KB )
  73. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/contract/Jsonable.php ( 0.13 KB )
  74. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/contract/Modelable.php ( 0.09 KB )
  75. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Db.php ( 2.88 KB )
  76. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/DbManager.php ( 8.52 KB )
  77. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Log.php ( 6.28 KB )
  78. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Manager.php ( 3.92 KB )
  79. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/psr/log/src/LoggerTrait.php ( 2.69 KB )
  80. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/psr/log/src/LoggerInterface.php ( 2.71 KB )
  81. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Cache.php ( 4.92 KB )
  82. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/psr/simple-cache/src/CacheInterface.php ( 4.71 KB )
  83. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/helper/Arr.php ( 16.63 KB )
  84. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/cache/driver/File.php ( 7.84 KB )
  85. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/cache/Driver.php ( 9.03 KB )
  86. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/contract/CacheHandlerInterface.php ( 1.99 KB )
  87. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/Request.php ( 0.09 KB )
  88. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Request.php ( 55.78 KB )
  89. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/middleware.php ( 0.25 KB )
  90. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Pipeline.php ( 2.61 KB )
  91. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-trace/src/TraceDebug.php ( 3.40 KB )
  92. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/middleware/SessionInit.php ( 1.94 KB )
  93. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Session.php ( 1.80 KB )
  94. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/session/driver/File.php ( 6.27 KB )
  95. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/contract/SessionHandlerInterface.php ( 0.87 KB )
  96. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/session/Store.php ( 7.12 KB )
  97. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Route.php ( 23.73 KB )
  98. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/RuleName.php ( 5.75 KB )
  99. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/Domain.php ( 2.53 KB )
  100. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/RuleGroup.php ( 22.43 KB )
  101. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/Rule.php ( 26.95 KB )
  102. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/RuleItem.php ( 9.78 KB )
  103. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/route/app.php ( 4.22 KB )
  104. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/facade/Route.php ( 4.70 KB )
  105. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/dispatch/Controller.php ( 4.74 KB )
  106. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/Dispatch.php ( 10.44 KB )
  107. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/controller/Index.php ( 9.87 KB )
  108. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/BaseController.php ( 2.05 KB )
  109. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/facade/Db.php ( 0.93 KB )
  110. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/connector/Mysql.php ( 5.44 KB )
  111. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/PDOConnection.php ( 52.47 KB )
  112. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/Connection.php ( 8.39 KB )
  113. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/ConnectionInterface.php ( 4.57 KB )
  114. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/builder/Mysql.php ( 16.58 KB )
  115. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/Builder.php ( 24.06 KB )
  116. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/BaseBuilder.php ( 27.50 KB )
  117. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/Query.php ( 15.71 KB )
  118. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/BaseQuery.php ( 45.13 KB )
  119. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/TimeFieldQuery.php ( 7.43 KB )
  120. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/AggregateQuery.php ( 3.26 KB )
  121. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/ModelRelationQuery.php ( 20.07 KB )
  122. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/ParamsBind.php ( 3.66 KB )
  123. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/ResultOperation.php ( 7.01 KB )
  124. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/WhereQuery.php ( 19.37 KB )
  125. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/JoinAndViewQuery.php ( 7.11 KB )
  126. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/TableFieldInfo.php ( 2.63 KB )
  127. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/Transaction.php ( 2.77 KB )
  128. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/log/driver/File.php ( 5.96 KB )
  129. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/contract/LogHandlerInterface.php ( 0.86 KB )
  130. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/log/Channel.php ( 3.89 KB )
  131. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/event/LogRecord.php ( 1.02 KB )
  132. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/Collection.php ( 16.47 KB )
  133. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/facade/View.php ( 1.70 KB )
  134. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/View.php ( 4.39 KB )
  135. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/controller/Es.php ( 3.11 KB )
  136. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Response.php ( 8.81 KB )
  137. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/response/View.php ( 3.29 KB )
  138. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Cookie.php ( 6.06 KB )
  139. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-view/src/Think.php ( 8.38 KB )
  140. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/contract/TemplateHandlerInterface.php ( 1.60 KB )
  141. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-template/src/Template.php ( 46.61 KB )
  142. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-template/src/template/driver/File.php ( 2.41 KB )
  143. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-template/src/template/contract/DriverInterface.php ( 0.86 KB )
  144. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/runtime/temp/c935550e3e8a3a4c27dd94e439343fdf.php ( 31.50 KB )
  145. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-trace/src/Html.php ( 4.42 KB )
  1. CONNECT:[ UseTime:0.001121s ] mysql:host=127.0.0.1;port=3306;dbname=wenku;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.001736s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.001373s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000608s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.001506s ]
  6. SELECT * FROM `set` [ RunTime:0.000582s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.001915s ]
  8. SELECT * FROM `article` WHERE `id` = 926566 LIMIT 1 [ RunTime:0.001202s ]
  9. UPDATE `article` SET `lasttime` = 1786508814 WHERE `id` = 926566 [ RunTime:0.005693s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 64 LIMIT 1 [ RunTime:0.000687s ]
  11. SELECT * FROM `article` WHERE `id` < 926566 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.001144s ]
  12. SELECT * FROM `article` WHERE `id` > 926566 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.001102s ]
  13. SELECT * FROM `article` WHERE `id` < 926566 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.003817s ]
  14. SELECT * FROM `article` WHERE `id` < 926566 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.007089s ]
  15. SELECT * FROM `article` WHERE `id` < 926566 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.001955s ]
0.229011s