惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

J
Java Code Geeks
腾讯CDC
Jina AI
Jina AI
博客园 - 司徒正美
博客园 - 三生石上(FineUI控件)
Apple Machine Learning Research
Apple Machine Learning Research
GbyAI
GbyAI
WordPress大学
WordPress大学
Hugging Face - Blog
Hugging Face - Blog
T
The Blog of Author Tim Ferriss
小众软件
小众软件
M
MIT News - Artificial intelligence
MyScale Blog
MyScale Blog
D
Docker
H
Hackread – Cybersecurity News, Data Breaches, AI and More
Google DeepMind News
Google DeepMind News
月光博客
月光博客
L
LangChain Blog
F
Fortinet All Blogs
Microsoft Azure Blog
Microsoft Azure Blog
博客园 - Franky
C
Check Point Blog
U
Unit 42
人人都是产品经理
人人都是产品经理

立云图志 - 昆明

L.Plog.v1 超出预期的浏览体验 个性化图志系统 被嫌弃的博客图像处理 90% 只想好好听首歌 写而为己 对友链的思考 有声:东风坝开合浮桥 戒烟已十年 C/2025 A6 Lemmon Typecho 相册主题 Snapic Plus v6 寻求贡献者 Typecho 图志主题:Snapic Paper 预料中的又倒下一批 Typecho 主题、模板、插件 给 Typecho 博客添加申请友链、站点收藏等功能 给 Typecho 博客添加旅行足迹地图标记功能 给 Typecho 博客添加评论者「都说了啥」功能 Typecho 记事阅读主题:Snapic Just 640px Typecho 多合一功能集插件:Lopwon Hub 视频:紫金山 - 阿特拉斯彗星 C/2023 A3 Tsuchinshan-ATLAS Typecho SEO 搜索引擎优化插件 视频:老成昆线 7466/5 次慢火车 博客已十年 视频:Nunca Tristes Typecho 相册主题:Snapic Plus v5 停止开发! 视频:中缅边境,填坑行 一季山河:有声篇 追踪文昌近期火箭发射 又双叒叕,退票成功
与 Typecho 相关
作者: Lopwon · 2025-10-11 · via 立云图志 - 昆明

· Picture by ChatGPT· Picture by ChatGPT

在重制 Snapic Plus 过程中,需要把 JSON 字符串转换为数组,于是构建了以下函数:


    function jsonStringToArray($jsonString, $associative = true)
    {

        if (!is_string($jsonString) || empty(trim($jsonString))) {
            return $associative ? [] : null;
        }

        $decodedData = @json_decode($jsonString, $associative);

        if (json_last_error() === JSON_ERROR_NONE) {
            return $decodedData;
        }

        return $associative ? [] : null;

    }

    $data = '{"last_update_timestamp":"1760160739","total_media_count":576}';

    jsonStringToArray($data); // 转为数组
    jsonStringToArray($data, false); // 转为对象

事后细想,这是常用的功能,Typecho 或许有内置的,果然,在 var/Typecho/Common.php 文件里找到了:


    $data = '{"last_update_timestamp":"1760160739","total_media_count":576}';

    Json::decode($data); // 转为对象
    Json::decode($data, true); // 转为数组

这样的现象还挺普遍,由于官方提供的使用文档略显粗犷,主题、插件的开发者们常常会忽略这些自带的方法、组件等,这么一来,无形中增加了制作的时间开销,也存在升级新版 Typecho 时,主题、插件代码失效报错的情况,比如(这里)提及的偏方。

此外,不少主题会使用诸如以下的标记方式对文章内容进行替换,以输出自定义的丰富版式,但是,由于官方似乎没有制定统一的开发规范,导致不同开发者使用了不同风格去实现相似的渲染结果,致使在切换主题时,无法正确兼容适配。


    [photos][/photos] // 开发者 A
    [fotos][/fotos] // 开发者 B

26 视频:中缅边境,填坑行

尼康D90相机抓拍进藏骑行者

1374141600

尼康D90相机抓拍进藏骑行者

明天的天气不会太糟,可以出发

1348999200

明天的天气不会太糟,可以出发