php - 检查 Mediawiki 文章内容中是否存在模板的最有效方法是什么?

标签 php mysql mediawiki

我查看了 SQL 数据库中的“文本”表,发现页面内容的字段相当复杂。试图使用 WhatLinksHere 但让自己陷入了更大的困惑。

我相信一定有一种我可以使用的简单方法,从 ReplaceText 扩展以及搜索 php 文件来看。但这些文件对我来说确实看起来很神秘,因为它们引用了一些其他文件。我想知道是否有人可以帮助我解决这个问题。

(P/S:我查看了“pagelinks”表,只看到了 pl_from。不知道为什么没有 pl_to?)

最佳答案

模板包含记录在 templatelinks table 中, 不在 pagelinks .

两个表的格式相同:tl_from 字段包含链接/嵌入页面的页面 ID,而字段 tl_namespacetl_title 包含被嵌入的目标页面的命名空间和规范化(数据库键形式,即空格的下划线)标题。

对于模板链接,目标 namespace 通常 为 10(模板),但情况并非总是如此:可以使用语法 {{Namespace:Title}}(或只是 {{:Title}} 用于主命名空间中的页面)。

这种不对称的原因是,虽然 transcluding 页面必须存在,但不能保证被嵌入的模板确实存在。因此,目标页面可能没有页面 ID,因此我们需要使用它的标题(和命名空间)来引用它。

关于php - 检查 Mediawiki 文章内容中是否存在模板的最有效方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17460045/

相关文章:

php - 将参数传递给新窗口php

php - 尝试将数据插入 mySQL 数据时 T_OBJECT_OPERATOR

java - 维基百科 API 返回的摘录没有文章中的所有字符?

php - 如何在 Sonata Admin Bundle 中翻译标签

PHP Bug 还是我对语言的误解?

php - 手动更新 WordPress 数据库

ssl - F5 负载均衡器后面主站点的子文件夹中站点的 iframe 的混合内容错误

javascript - MediaWiki/OOUI : SelectWidget for multiple selections?

php - 什么是unix时间戳公式?

mysql - Group_concat 内部排序