#commentで本文の改行が増殖するんですが....

  • ページ: BugTrack
  • 投稿者: ゆう
  • 優先順位: 普通
  • 状態: 完了
  • カテゴリー: プラグイン
  • 投稿日: 2002-08-05 (月) 18:36:17
  • バージョン:

メッセージ

■概要:
#commentを使った書き込みで、本文の改行が書き込みごとに増えていく。


■詳細:
(1) まったく新規のページに#commentだけを書き込む。
(2) コメントを書き込む。
(3) (2)を繰り返す。
(4) できたページを編集で見ると、不要な改行(空白行)が増えている。コメントの書き込みごとに増えているよう。


■原因(?):
以下の環境でテストしておりますが、改行コードの設定の問題ではないのかと考えています。しかし、なにぶん初心者なもので防止策がわかりません。防止方法がありましたらご教授願います。


■環境:
Windows XP Pro. + Apache 1.3.20 + PHP 4.0.6 + PukiWiki 1.3.1 b1


※こちらの本家で少しコメント書き込みがあるページを編集で見せていただきましたが、このような現象は発生していないようで、やはり私の環境の問題化と思います。FAQやBugTrackなどを探してみましたが、見つけられませんでした。既出の問題でしたら申し訳ありません。


いくつかwikiクローンを比べさせていただいてPukiWikiの#commentと#voteを使いたくて無理してphp導入してテストしている初心者です。有用なソフトを使わせていただいて感謝しております。よろしくお願いいたします。


  • 僕もWinXP上で同様のバグに遭遇しました。これはWiki側のバグではなくて、Windows版のPHPの問題ではないかと想像してますが、どうなんでしょう?>技術担当者さま ちなみに僕はApacheでなくてAnhttpdで利用してます。 -- Takachin? 2002-07-25 (木) 21:36:19
  • 改行コードの問題かな?そんな気がするな・・・ -- ゆう 2002-07-26 (金) 00:36:49
  • そういえば、Windows環境でのテストは足りないですもんね。 -- kawara 2002-07-26 (金) 11:50:13
  • Windows 2000 + Apache/1.3.26 (Win32) PHP/4.2.1 でも再現しました。 -- dolph 2002-07-26 (金) 12:24:31
  • 追加テストありがとうございます。#voteはどうだろうと思ってテストしておりますが、同じ空行現象が発生します。かつ、voteしてもカウンターに反映されません。何か追加で設定が必要ですか? -- m-jack? 2002-07-26 (金) 13:45:30
  • mb_xxx の設定であるかな? 当方Linux環境なのに、なぜかCRLFでファイルがつくられているので、Windows環境ではCRCRLFになっているとか。。。環境のそばに居ないので、あてずっぽうですが。 -- seagull 2002-07-26 (金) 14:58:09
  • CRCRCRCRLF のようになっていますね。ところが、ファイルの最後にはLFがありません。 -- m-jack? 2002-07-26 (金) 15:26:59
  • Windows2000 + Apache1.3.26 + PHP4.2.2 で同種の問題にて難儀しています。。。 -- けん? 2002-07-26 (金) 15:33:46
  • 確かwindowsのphpってmb_stringに対応していなくて、http://www.geocities.jp/rui_hirokawa/php/win/ に対応版がアップされています。これに差し換えれば問題は無くなるのかな? -- Takachin? 2002-07-26 (金) 23:25:21
  • 差し替えてみましたが、それだけでは駄目なようです。設定か改造でしのげるかな?技術はないですが(汗 -- けん? 2002-07-27 (土) 01:45:13
  • 仮対処。93行目に  $postdata = ereg_replace("\r","",$postdata); をぶっこむ。。。 -- けん? 2002-07-27 (土) 03:40:31
  • 改行コード問題か・・・。すみませんちゃんと調べてみますね。Winにも正式対応したいですし。 -- ゆう 2002-07-29 (月) 01:50:36
  • よろしくお願いします。とりあえず当方は機能確認のためLinux環境を立ち上げました。急ぎませんのでよろしくお願いします。 -- m-jack? 2002-07-29 (月) 09:32:49
  • あ~。。スクリプトの改行コードがCRLFだからだ。スクリプトコードがCRLFになって、出力もそれにつられてる。しかもスクリプトから吐き出す文字列にすでにCRがついてるから。。。CRCRCRLF。。一個合わないなぁ -- seagull 2002-07-29 (月) 13:33:11
  • 入出力のどこかの時点でstr_replace( "\r\n", "\r", $str);、str_replace( "\r", "\n", $str);の処理が必要ですね。 -- reimy 2002-07-29 (月) 14:04:50
  • convert_htmlのなかで改行の変換やっていたような…。 -- kawara 2002-07-29 (月) 15:30:20
  • とりあえずApache for Win32入れてみます。 -- ゆう 2002-08-03 (土) 03:14:57
  • あ、これももしかして php.ini の http_input のエンコーディングの設定とか関係あるのかな。 -- kawara 2002-08-03 (土) 09:03:55
  • Windows上のPHPでfopen(...,'w')で開いたファイルに'\n'を書き込もうとすると、それらが全て(直前に'\r'があろうとなかろうと)'\r\n'に置換されるようです*1。ファイル書き込みのモードを全て'wb'にすれば解決すると思われますが、いかがでしょうか。 -- ぱんだ 2002-09-22 (日) 23:33:28
  • ちなみに、なぜ編集->更新のときは改行コードが増えないのか。それは、init.phpの53行目で'\r'を全て捨てているからです。 -- ぱんだ 2002-09-22 (日) 23:37:31
  • 最初のころは\rを捨てて全部\nに統一するコード入ってましたよね、たしか。勘違いかなぁ。 -- kawara 2002-09-23 (月) 00:15:00
  • convert_htmlには同じコードが入っていますが、これはファイルの書き出しには関係しないですよね… -- ぱんだ 2002-09-23 (月) 09:00:34
  • Windowsではコード内で'\n'を指定すると内部では'\r\n'になっているようです。 -- sng 2002-09-23 (月) 10:18:50
  • なので、変換するにしても文字コード '\r' -> \x0D '\n' -> \x0A を置換対象にする必要があります。たぶん。 -- sng 2002-09-23 (月) 10:22:20
  • ということは、convert_html 入ってる機能をファイルの書き込みが発生するプラグイン側にも入れてあげればいいんですね。 -- kawara 2002-09-23 (月) 16:06:51
  • でも、ほんとなら本体側で処理しちゃったほうがいいんだろうなぁ。本体とプラグインの仕様はやっぱり詰める必要がありますよね。楽しみな課題かな。 :) -- kawara 2002-09-23 (月) 16:08:15
  • 昔、同じ現象を起こした覚えがあるんですがこんなふうにして解決しました。 -- P太? 2002-10-06 (日) 01:26:30
  • と、思ったらウチのは#articleでした。勘ちがいです、すいません。 :( -- P太? 2002-10-06 (日) 01:30:42

*1 突っ込んで調べたわけではないので、誰が悪さをしているのかはわかりません。

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

OSDN