メッセージ本文をデータベースに書き込む RoundCube プラグインがあり、その後、データを別のテーブルに解析する必要があります。RoundCube で特定の関数を使用することにより、すべての html タグを削除することができ、a</td>
は '\n' に</tr>
置き換えられ、'\n\n' に置き換えられます。これにより、データの解析が非常に簡単かつ堅牢になります。=
欠点が 1 つだけあります。html データは、末尾に がある修正行に分割されます。たとえば、次のようになります。
<td valign=3D"bottom" style=3D"color:#444444;padding:5px 10px 5=
px 0px;font-size:12px;border-bottom:1px solid #eeeeee;"><b>Discount</b></td=
><td valign=3D"bottom" align=3D"right" style=3D"color:#444444;padding:5px 0=
px 5px 0px;font-size:12px;border-bottom:1px solid #eeeeee;text-align:right;=
"><b>Price after discount</b></td>
現在、 は</td=
認識されていないため、割引 \n 割引後の価格\n ではなく、割引後の割引価格\ nのように割引後の価格に割引が結合されます。これはコードの至るところにあり、実際に深刻な問題を引き起こしています。
= を削除して、次のようなもので中断しようとしました。
$msg_body = str_replace('=', '', $msg_body);
$msg_body = str_replace('=\n', '', $msg_body);
$msg_body = str_replace('= ', '', $msg_body);
本当の成功はありません。改行なのか段落の改行なのか、= 記号の後に来る改行の種類がわからず、見つけようとしましたが、無駄に、RoundCube のコードを見てもわかりませんでした。HTMLをエコーアウトしても、何も明らかになりませんでした。
これを一般的な php と html の質問としてここに投稿します。これは、誰かがこれらの = 記号と神秘的な (私にとって) ブレークを単純に削除するのを手伝ってくれることを願っています。
</td=
>
になる
</td>
など