Autolinkを有効にしていると、ページが増えると、ページ内容が表示されなくなる

  • ページ: BugTrack2
  • 投稿者: Mika?
  • 優先順位: 重要
  • 状態: 提案
  • カテゴリー: 本体バグ
  • 投稿日: 2007-02-19 (月) 17:15:06
  • バージョン: 1.4.7

メッセージ

Autolinkをonにしていると、ページが増えたとき、すべてのページの内容(スキンのheader、footerなどを除く。よするにページの本文・脚注などmainの部分)が表示されなくなります。

原因は、Autolinkをpreg_matchなどで実現しているため。ページが増えて、preg_patternの文字列が16Kbyte以上になった場合に発生します。

各ページのページ名(階層化した場合も含む)の長さにもよりますが、ページ数が2000~3000程度になるとautolink.datの1行目の長さが16Kbyteを超えて、この症状が発生します。

対処療法ですが、現在のバージョンではアルファベットだけのページ名を別扱いに処理している部分を、アルファベット・カタカナ・ひらがなだけのページ名(もしくは漢字の木偏あたりまで)を対象に変更することで、バランスをとって対処しています。

(どこで分けるかは、個々のサイトのページ名の文字の使われ方で左右されますが)

いずれにしても、これは対処療法でしかありませんので、今後のバージョンで根本的な解決を望みます。


  • このバグは、PukiWikiサイトに対するSPAM攻撃にも使える。けっこう、やばい -- Yahoo!? 2007-02-19 (月) 17:20:37
  • こんにちは。この件は既存のBugTrackにあるはずですので、そちらに話題を合流させて下さい。対策については具体的な案が無いのであれば、これらのBugTrackがそのための場所になるでしょう。 -- henoheno 2007-02-19 (月) 21:14:15
  • BugTrack2/81 ですね :) -- teanan 2007-02-20 (火) 02:28:52
  • Mikaさんは、16KB という制限をどのように調べられたのでしょう。仮にその値が鉄板なら、16KBを超えないよう正規表現を複数個生成する、という方法が安定して使えそうなのですが。(BugTrack2/81も参照) -- henoheno 2007-02-22 (木) 23:47:21
  • error_reportingの値をE_ALLにしておけば、PHPがそのようなエラーをはいてくれます。環境は、PHP 5.2.1/Apache 2.2/Windows XP SP2/PukiWiki 1.4.7 UTF-8/AutoLink = 4、ページ数約2300でアウト。  -- Mika Friend? 2007-02-24 (土) 15:17:11


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2007-02-24 (土) 15:25:38
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.264 sec.

OSDN