カテゴリ | エラー・トラブル |
サマリ | 被修飾文字列が一定以上の長さの場合の、インライン修飾子&color, &sizeでの異常(続) |
バージョン | 1.4.7 |
投稿者 | okada |
状態 | 完了 |
投稿日 | |
質問箱/3210にも関連するのですが、以下のバージョンの組み合わせでも類似事象が発生しており、対策案を探しています。
【発生事象】
&color(色){文字列};
において、「文字列」が一定数(半角414文字)を超えると、「文字列」そのものが表示されない。
画面上、特にエラー表示は出ない。
Apacheのエラーログにも特に何も残っていない。
当該の文字列が出力されないのみ。
【バージョン組み合わせ】
- WindowsXP上
- apache_2.0.63-win32-x86-openssl-0.9.7m
- php-5.2.5-Win32
- pukiwiki-1.4.7_notb_utf8
解決方法について、何か情報をお持ちの方、いらっしゃらないでしょうか?
- 1.4:本家質問箱5/103/試験じゃ問題なく動いてるようですね
でも我が家の「Windows7 apache2.2.22(win32) PHP5.2.17 PukiWiki 1.4.7」では同様の条件で何も出力されなくなる。
ついでに&newで長大文字列を送った場合も同様の症状が発生したので、個別のプラグインではなく、「プラグインを呼ぶ仕組み」のほうに問題がある模様。
ここから先は私の技術では手を出すのが容易ではないのでお答えは出来ませぬ。
ところで単純に&colorを複数に分けて記述すればとりあえず回避可能だと思いますので一般利用者にはそのように誘導してみては如何でしょう? --
- ご回答ありがとうございました。本現象はどうやら改行コード(”&br;”)の挿入にも影響されるようです…改行コードが入ると現象が発生する文字数が変化します。(参考までに私の環境でNGとなる記述を1.4:本家質問箱5/103/試験に挿入してみました)
私もプラグインではなく、それを呼び出す仕組みに何か原因があると思っています。
いろいろとご教授ありがとうございました。
回避策なのですが、実は自作プラグインの中で文字列を引数で渡しているのですが、本現象が原因で表示されなくなってしまい、困っているのです。そのため、単純に回避できず… -- okada
- PCRE関連の既知の問題っぽいかな。関連の1つdev:BugTrack2/81はAutoLinkがメインですからちょっと話が外れるかもしれないけど。
Q. 設置後にアクセスすると画面が真っ白になって、エラーメッセージが何も表示されないを参考にログに載る敷居を変えてみる。後は、メモリ関連の設定やPCREの実行設定を調整できるほどハードに余裕があるなら少し緩和して一時しのぎをするか。 --
- ご回答ありがとうございました。ご提供頂いた設定を試してみたのですが解決には至らず…
今のところ、複数のPC上で、本現象は発生することは確認できています。そのため、マシンの処理能力が足りない、というよりは、何かしらのpuwiki/PHP/Apacheの制約?バグ?があるのではないかと思っているのですが、、難しいですね… -- okada
- 自己解決いたしました!お騒がせしました!
PHPの特定のバージョンから現象が発生するらしく、PHP 5.1.2.では発生しません。
PHP 5.2.5.以降のバージョンでは発生します。
根本的な原因は不明なのですが、PHPをダウングレードすることで現象が再現しないため、本件もクローズいたします。 -- okada
- 追伸です。
本現象は、PHP 5.1.3.以降で発生することが確認できました。
PHP 5.1.2.では発生しません。 -- okada