Top > 気まぐれ日記 > 2007-02-23

PukiWiki Plus! その2 *

ご本人にコメントをつけられてしまったので、本気で検討 :)

htmlとattachファイル偽装は$scriptを探して、

<?php // スクリプトURIの生成
function make_script_uri($script, $query)
{
    $uri = $script . '?' . $query;

    if(! strpos($query, '=')) {
        $uri = $script . str_replace('%2F', '/', $query) . '.html';
    } elseif(preg_match("/^plugin=attach&amp;refer=([^&]+)&amp;openfile=([^&]+)/", $query, $match )) {
        $uri = $script . str_replace('%2F', '/', $match[1]) . '/attach/' . $match[2];
    } elseif(preg_match("/^plugin=attach&amp;pcmd=open&amp;file=([^&]+)&amp;refer=([^&]+)/", $query, $match )) {
        $uri = $script . str_replace('%2F', '/', $match[2]) . '/attach/' . $match[1];
    } elseif(preg_match("/^plugin=ref&amp;page=([^&]+)&amp;src=([^&]+)&amp;width=([0-9]+)&amp;height=([0-9]+)/", $query, $match )) {
        $uri = $script . str_replace('%2F', '/', $match[1]) . '/attach/thumb/' . $match[3] . 'x' . $match[4] . '/' . $match[2];
    }
    return $uri;
} ?>

こんな関数作って、片っ端から $script.'?'.$hoge みたいなのを make_script_uri($script, $hoge) に変更するだけなので、30分程度あれば楽々で変更できる。

変更は楽でも、BugTrack毎にdiff取っていくのが辛いとこ :(

PukiWiki Plus!がリンク生成時にopen_uri_in_new_window()を呼ぶようなったように、uri生成時にも何か関数を呼ぶようなるとmod_rewrite派は幸せに慣れると思ったり :)

サムネはまた明日。

メールアドレスの公開方法とか *

メールアドレスをクローラに取得させないように画像で公開しているページをよく見る。

そういえば、texなプラグインは入れているので、画像で出すのは簡単 :)

1. #math(\small\text{hoge@example.jp})
a math image

これでもコードを見られたらばればれなので、

2. #math(\small\text{hoge%40example%2Ejp})
a math image

"@"と"."ぐらいは符号化しておいたほうが良いのか?

きっと、%40と%2Eぐらいは解釈するクローラはあるだろう...

3. #math(\small\text{hoge\compose{O}{\cal a}example\cal{%2E}jp})
a math image

さすがに"O"と"a"を合成して作った"@"なら大丈夫...なのか?

結局人の手でリストに登録されると効果ないので、メールフォームが確実かなぁと振り出しに戻る :(