PHP 插件标签手册
1. 随程序交付的 PHP 插件
这些标签写在 HTML 模板里,由交付目录 plugins/ 中的 PHP 插件处理。它们与 SO 提供的核心标签 配合使用,不需要把模板改成 PHP 文件。HTML 模板里的 PHP 代码不会执行,请直接使用文档列出的标签。
| 用途 | 写法或设置 |
|---|---|
| 随机版本号 | {s:fn:ver}、{d:fn:ver} |
| 中文短语 | {s:phrase}、{d:phrase} |
| 随机选段 | {pick}…{/pick} |
| 属性前缀 / 后缀 | 站点配置 → 属性干扰 |
| CSS 填充 | 站点配置 → 体积填充 |
| PDF 页面 | 站点配置 → 页面输出 / PDF 输出 |
下面的标签结果取自本次 PHP 8.3 示例运行。涉及随机值的结果展示一次生成情况,刷新或清缓存后不保证相同。
2. 版本号:复用与每次生成
ver 生成三个以点分隔的数字,每段范围为 1–99。它是随机文本,不是引擎版本,也不跟随文件修改时间。
同一处理阶段,不带 :each 的版本号会复用:
模板
<link href="/theme.css?v={s:fn:ver}">
<script src="/theme.js?v={s:fn:ver}"></script>
生成结果
<link href="/theme.css?v=67.79.49">
<script src="/theme.js?v=67.79.49"></script>
两个位置复用同一个值。开启页面缓存时,s 值随缓存保存;d 值在输出时处理。
加上 :each,每个位置重新抽取。随机抽取仍可能碰巧相同。
模板
{s:fn:ver:each} / {s:fn:ver:each}
生成结果
6.42.3 / 67.86.4
对 CSS / JS 使用动态版本号会改变资源 URL,降低浏览器缓存利用率;按页面需要选用。
3. 中文短语
直接写 {s:phrase} 或 {d:phrase},不接受参数。由插件词库组合短句,不依赖 AI 接口。
模板
<h2>{s:phrase}</h2>
生成结果
<h2>应对公共卫生,系统观念、系统释义解释与落实</h2>
每个标签分别生成;同一页面多个 phrase 标签不保证相同。
静态与动态的区别仍由页面缓存决定:关闭缓存时两类标签都会重新处理。
4. 随机选段
从候选文字里抽一段,输出纯文本。标签内可放多行文字,或多段 HTML。
模板
<p>{pick}
<p>打开文档。</p>
<p>整理模板。</p>
<p>保存笔记。</p>
{/pick}</p>
生成结果
<p>打开文档。</p>
保留模板外层的 p,候选内部的 HTML 标签会被去掉。
先按块级标签、换行和 <br> 分段;只有一段时,再按 。!?!? 拆句。普通英文句点 . 不作为拆分符。
{pick} 没有 s / d 前缀。开启缓存时,它在缓存生成阶段就会完成选取;不会因为每次访问而自动重选。请写完整闭合标签,避免错误截取。
5. 与核心标签组合
例如先从同一条 JSON 记录取标题,再限制摘要长度。假设 news 分组本次抽到:
{"title":"姐夫工具箱","content":"<p>整理文本,保存笔记。</p>"}
模板
<h2>{s:json:news:title:1}</h2>
<p>{cut count="4"}{s:json:news:content:1}{/cut}</p>
生成结果
<h2>姐夫工具箱</h2>
<p>整理文本</p>
这里的 :1 用于复用同一条记录,不表示第一个文件。完整数据准备和更多例子见 核心标签。
6. 页面处理顺序
高优先级替换 → 循环 → 数据标签 → 随机选段 → 截取 → 编码 → 属性干扰 → 体积填充。
数据阶段会按需重复,最多 5 轮;循环展开不在这 5 轮里,普通内容替换后才引入的 loop 不会再展开。替换结果包含新标签时可继续处理,但不要在数据中写回自身标签,否则可能嵌套膨胀。开启缓存时,先处理并保存静态结果,再处理动态结果。
涉及 {pick}、{cut}、{encode} 的静态结构不要包裹仍待处理的 d 标签;在静态阶段截取或编码可能提前改变标签文本。
7. 属性前缀与随机后缀
这是一项站点配置,无需增加模板标签。在「属性干扰」启用后,填写属性列表(例如 class),再选择域名前缀、随机后缀或同时使用。
访问域名为 www.example.com:443,仅开启域名前缀:
模板
<div class="card">姐夫</div>
生成结果
<div class="wwwexamplecom card">姐夫</div>
域名会去掉端口和点号,再作为一个属性值加在前面。
仅开启随机后缀,长度设置为 8:
模板
<div class="card">姐夫</div>
生成结果
<div class="card A37pi24C">姐夫</div>
原有 card 保留,随机值用空格分隔。可配置长度为 4–32。
只处理模板中已有、带引号的指定属性。开启页面缓存时,属性处理结果随静态页面缓存保留。
8. CSS 体积填充
在「体积填充」启用并设置目标 KB。插件会在 HTML 前加入包含 CSS 的注释块;无需写模板标签。目标用于控制填充内容规模,不是整页压缩传输体积的精确值。
只在需要时启用,先看生成源码和实际加载体积。它不会替你补齐页面样式文件。
9. PDF 输出
在「页面输出」选择 PDF 后,原 HTML 模板先完成标签处理,再由服务器的 wkhtmltopdf 转换。客户包包含这项插件;服务器还需准备转换程序、中文字体,以及用于结束超时任务的 timeout 命令。
在「PDF 输出」填写转换程序绝对路径,不附带命令参数;确认 UTF-8 字符环境、运行目录可写及 PHP-FPM 可启动转换进程。先用一页含中文的模板验证标题、字体和图片,再处理大页面。
输出为 application/pdf,可按配置在浏览器显示或保存。PDF 不缓存;HTML 的静态 / 动态标签仍受页面缓存设置影响。没有准备转换环境时使用 HTML。
10. 排查清单
- 核对
plugins/中有对应交付文件,不从别的环境补入未知插件。 - 版本号相同:不带
:each时复用属于正常行为。 - 修改后没变化:清除页面缓存,核对处理的是正确站点和模板。
- 属性无变化:检查总开关、属性列表、属性是否带引号,以及域名 / 随机开关。
- 选段结果没保留 HTML:该标签输出纯文本。
- PDF 失败:检查转换程序、字体、权限、进程功能和错误日志。