在我检查的页面中,它们都返回相同的内容,但Mediawiki文档说明存在差异。
我并不担心这些差异,但实际上哪一个存储在页面表中?
答案 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实际上并没有用下划线替换空格。
相反,我发现here和here您可以使用以下命令访问存储在Page表中的字符串:
$dbk = $title->getDBkey();
该片段是直接从Mediawiki代码中提取的。
它没有出现与此密钥关联的Magic Word。
我无法找到数据库中page_title
的来源,但看起来它只是替换了空格,引号和&符号的页面名称。也许它依赖于数据库。我正在使用MySQL。