ハイライト表示時に pre 環境中の " が \" になってしまう†
- ページ: BugTrack
- 投稿者: masao
- 優先順位: 低
- 状態: 完了
- カテゴリー: 本体バグ
- 投稿日: 2003-03-19 (水) 23:39:40
- バージョン: 1.4pre6
メッセージ†
ここのサイトもそうなのですが、Pre 環境中にある " が \" と表示されます。
例: http://pukiwiki.sourceforge.jp/dev/index.php?cmd=read&page=BugTrack%2F269&word=%22%22
""
BugTrack/49と似た現象でしょうか?
- 書き込んでみて、再現条件がわかりました。単語検索してハイライト表示時にのみ起こる現象だったようです。 -- masao 2003-03-19 (水) 23:44:21
- preg_replaceを二重に使っているのが原因です。 -- ぱんだ 2003-03-20 (木) 21:01:45
- html.phpの84行目で、無理やり
- $body = preg_replace("/(?:^|(?<=>))([^<]*)/e",
'preg_replace("/($q_key)/i",$to,\'$1\')',$body);
+ $body = preg_replace("/(?:^|(?<=>))([^<]*)/e",
'str_replace(\'\\"\',\'"\',preg_replace("/($q_key)/i",$to,\'$1\'))',$body);
としました。 cvs:html.php(v1.4:r1.70) -- ぱんだ 2003-03-22 (土) 07:57:28
- 対応ありがとうございます。ちょっと見てみましたが、convert_html.php の617行目を
- $this->elements[] = htmlspecialchars($text,ENT_NOQUOTES);
+ $this->elements[] = htmlspecialchars($text);
のようにしておいた方が良い気がしますが、いかがでしょうか? -- masao 2003-03-22 (土) 23:20:09
- その方が簡単ですね。しかも、ダブルクオートを検索したときに<pre>内のダブルクオートも引っかかるようになります。そうしましょう。 -- ぱんだ 2003-03-23 (日) 00:14:07
- cvsに投入しました。convert_htmlで「<pre>内のダブルクオートを& quot;に変換するようにし、cvs:convert_html.php(v1,4:r1.28) html.phpを元に戻しました。 cvs:html.php(v1.4:r1.71) -- ぱんだ 2003-03-23 (日) 00:37:14