在Mediawiki中,在PAGENAME,PAGENAMEE和urlencode之间,哪一个实际存储在Page表中?

时间:2017-02-04 01:49:52

标签: mediawiki mediawiki-extensions

在我检查的页面中,它们都返回相同的内容,但Mediawiki文档说明存在差异。

我并不担心这些差异,但实际上哪一个存储在页面表中?

2 个答案:

答案 0 :(得分:2)

他们两个都没有。内部表示(“DB键表单”)是没有命名空间的标题(它在page_namespace中单独存储为数字),空格用下划线替换。代码是here。因此,{{PAGENAME}}既不是人类可读的标题,也不是{{PAGENAMEE}}{{#urlencode:{{PAGENAME}}}}是空格的特殊情况 - >下划线。

答案 1 :(得分:0)

搞定了。我保存了页面" Texas A& M"在页面表格中显示为" Texas_A_& _M"。

根据Mediawiki的手册:PAGENAMEE_encoding页面(我不能发布两个以上的链接),PAGENAME是唯一一个将&符转换为&而其他人将其转换为%26。

以下情况仍不正确!

我认为它是PAGENAME,但是PAGENAME实际上并没有用下划线替换空格。

相反,我发现herehere您可以使用以下命令访问存储在Page表中的字符串:

$dbk = $title->getDBkey();

该片段是直接从Mediawiki代码中提取的。

它没有出现与此密钥关联的Magic Word。

我无法找到数据库中page_title的来源,但看起来它只是替换了空格,引号和&符号的页面名称。也许它依赖于数据库。我正在使用MySQL。