スレッド・レス管理関連の不具合修正 #30

Merged
stat2 merged 2 commits from SaturdayTheMsgr/delightly-v2fork:fix-log-corruption into main 2023-10-16 04:05:59 +09:00
Contributor

概要

スレッド・レス管理画面およびレスを削除した場合に発生する諸般の不具合を修正するものである。
関連Issue #29

主な問題点と変更点

Jane系の専ブラで削除したレスが壊れた扱いとなる

従来では<><><>[削除]<>\nという形式で置換されていたが、A<>B<>C<>D<>EのうちCの部分が空だとレスが壊れてしまう。

変更点

  • >>1以外の時
    </b>[削除]<b><>[削除]<>[削除]<>[削除]<>\n
  • >>1の時
    </b>[削除]<b><>[削除]<>[削除]<>[削除]<>[スレタイ]\n

と置換するようにした。

スレッド・レス管理画面でタイトル表記が複数ある

prev.png
このようにタイトルの表示が複数あるが、該当部分を見てみると
134f86a9d4/test/operate/control.php (L136-L138)

list($name,$mail,$dateid,$comment,$subject) = explode("<>",$LOG[$i]);
$name = str_replace(array('<b>', '</b>'), "", $name);
if ($subject) echo "タイトル:".$subject;

となっていて、>>1以外は表示しないことが想定されているように伺える。
実際には全てのレスについて改行文字が末尾に含まれており全く意味をなしていない。

変更点

134f86a9d4/test/operate/control.php (L58)

$LOG = file($THREADFILE, FILE_IGNORE_NEW_LINES);

として予め改行文字を除去してから処理するようにした。

レス削除時にスレ全体のShift_JIS外字が"?"になる

UTF-8からShift_JISへの変換時に文字参照への変換指定がされていないのが原因

変更点

mb_convert_encodingによる文字コード変換の前に

mb_substitute_character('entity');

を挿入して文字参照への変換をするようにした。

## 概要 スレッド・レス管理画面およびレスを削除した場合に発生する諸般の不具合を修正するものである。 関連Issue #29 ## 主な問題点と変更点 ### Jane系の専ブラで削除したレスが壊れた扱いとなる 従来では`<><><>[削除]<>\n`という形式で置換されていたが、`A<>B<>C<>D<>E`のうち`C`の部分が空だとレスが壊れてしまう。 #### 変更点 * \>\>1以外の時 `</b>[削除]<b><>[削除]<>[削除]<>[削除]<>\n` * \>\>1の時 `</b>[削除]<b><>[削除]<>[削除]<>[削除]<>[スレタイ]\n` と置換するようにした。 ### スレッド・レス管理画面でタイトル表記が複数ある ![prev.png](/attachments/1360be1f-4f75-409d-9564-9207f6d195ca) このようにタイトルの表示が複数あるが、該当部分を見てみると https://git.3chan.cc/stat2/delightly-v2fork/src/commit/134f86a9d47ad9c4b5752f30842dbb2878a3e758/test/operate/control.php#L136-L138 ```php list($name,$mail,$dateid,$comment,$subject) = explode("<>",$LOG[$i]); $name = str_replace(array('<b>', '</b>'), "", $name); if ($subject) echo "タイトル:".$subject; ``` となっていて、\>\>1以外は表示しないことが想定されているように伺える。 実際には全てのレスについて改行文字が末尾に含まれており全く意味をなしていない。 #### 変更点 https://git.3chan.cc/stat2/delightly-v2fork/src/commit/134f86a9d47ad9c4b5752f30842dbb2878a3e758/test/operate/control.php#L58 ```php $LOG = file($THREADFILE, FILE_IGNORE_NEW_LINES); ``` として予め改行文字を除去してから処理するようにした。 ### レス削除時にスレ全体のShift_JIS外字が"?"になる UTF-8からShift_JISへの変換時に文字参照への変換指定がされていないのが原因 #### 変更点 `mb_convert_encoding`による文字コード変換の前に ```php mb_substitute_character('entity'); ``` を挿入して文字参照への変換をするようにした。
SaturdayTheMsgr added 2 commits 2023-10-16 03:17:17 +09:00
stat2 merged commit 39014c72d2 into main 2023-10-16 04:05:59 +09:00
Owner

プルリクありがとうございました!

プルリクありがとうございました!
Sign in to join this conversation.
No description provided.