質問箱/3479

カテゴリ
サマリファイル名をページ名から分離したい
バージョン1.4.5
投稿者カワイ?
状態保留
投稿日2006-08-09 (水) 14:24:44

質問

Wikiソースは

{エンコードされたページ名}.txt

というファイル名で保存されますよね。

そこで質問なのですが、 ファイル名をページ名から分離する方法はないものでしょうか。

例えば、Wikiソースの中にコメントかなにかでファイル名を指定する、とか。

以前、ページ名とファイル名の分離に関する記事をどこかでみたような気がするのですが・・・。

目的

ニッチかつ少々複雑な事情なのですが・・・。

PukiWikiサイトをまるごとhtml化するソフトを作ってます。

各ページをhtmlにする際、ファイル名をどうするかが焦点です。

すぐに実現できそうな選択肢はこのようなものです。

  1. hexエンコードする(PukiWikiがWikiソースのファイル名に採用している方法)
  2. URLエンコードする(index.phpに渡されるクエリ)

しかし、それぞれ

  1. すべてのファイルが意味不明な文字列になってしまう。 従ってfrontpageやindexがどれか分からなくなる。
  2. 多バイト文字が'%'を含んでしまうので、一部の環境で正常に動作しない。 *1

という欠点があります。

2.の方法で'%'を間引くという案もありますが、ファイル名が衝突する可能性がでてくるので避けたいです。

このような問題を解決する手段になるかもしれない、と思いまして、このような質問をさせていただきました。

回答

  • lib/file.phpのget_filename()/get_existpages()辺りを弄ってみれば?その辺りを自前でやっちゃってる野良プラグインがあれば、個別の対応も当然必要かな。しかし、全頁ソースから各ページ名を拾うのは重そうだなぁ。その一方、私にはメリットの方はまるで見えてこないけど。カワイさんは、何を目的にそんなことをしたいのですか?ひょっとすると、手段としてその方法は最善ではないかもしれませんよ? -- 2006-08-09 (水) 21:59:23
  • (参考までに)単にファイル名をページ名に直して取得したいのであればdumpプラグインで可能です。また、あるページのファイル名が何か調べたいのであれば[一覧]⇒[ファイル名一覧]で調べられます。 -- 2006-08-09 (水) 22:43:40
  • 回答ありがとうございます。指摘されたあたりを調べてみたいと思います。目的は↑に書かせていただきました。 -- カワイ? 2006-08-10 (木) 23:11:31

*1 ブラウザにファイルを渡す時や、リロード時に'%'がさらにエンコードされることがある

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2010-04-15 (木) 15:07:33
Site admin: PukiWiki Development Team

PukiWiki 1.5.2+ © 2001-2019 PukiWiki Development Team. Powered by PHP 5.6.40-0+deb8u7. HTML convert time: 0.235 sec.

OSDN