私がチェックしたページでは、すべて同じことが返されますが、Mediawikiのドキュメントには違いがあると書かれています。Mediawikiでは、PAGENAME、PAGENAMEE、urlencodeの間に、どちらが実際にPageテーブルに格納されていますか?
私は違いについて心配していませんが、実際にはどちらがページテーブルに格納されていますか?
私がチェックしたページでは、すべて同じことが返されますが、Mediawikiのドキュメントには違いがあると書かれています。Mediawikiでは、PAGENAME、PAGENAMEE、urlencodeの間に、どちらが実際にPageテーブルに格納されていますか?
私は違いについて心配していませんが、実際にはどちらがページテーブルに格納されていますか?
どちらもありません。内部表現(「DBキー形式」)は、名前空間を持たないタイトルです(数字はpage_namespace
に別々に格納されます)。スペースはアンダースコアで置き換えられます。コードはhereです。したがって、人間が読めるタイトルである{{PAGENAME}}
でもなく、{{#urlencode:{{PAGENAME}}}}
である{{PAGENAMEE}}
でもなく、スペース - >アンダースコアの特殊なケースです。
ページ「Texas A & M」を保存し、ページテーブルに「Texas_A_ & _M」と表示しました。
Mediawikiのマニュアル:PAGENAMEE_encodingページ(2つ以上のリンクを投稿することはできません)によれば、PAGENAMEはアンパサンドを&に変換する一方、他は%26に変換する唯一のものです。
以下は、まだ正しくありません。
私はそれがPAGENAMEだと思っていましたが、実際にはPAGENAMEはスペースをアンダースコアに置き換えません。メディアウィキコードから直接引かれるスニペット
$dbk = $title->getDBkey();
:
代わりに、私はあなたがこれを使って、ページテーブルに格納されている文字列にアクセスすることができhereとhereを発見しました。
このキーに関連付けられているマジックワードは表示されません。
データベース内のpage_title
の場所はわかりませんが、スペース、引用符、およびアンパサンドを置き換えたページ名のようです。多分それはデータベースに依存しています。私はMySQLを使用しています。