おはようございます、
問題は次のとおりです。テキスト エディター (WYSIWYG/TinyMCE) を介して入力されたテキストが、別の場所に投稿として表示されています。私たちが抱えている問題は、投稿として表示されるときにテキストの書式設定が失われることです。コードを掘り下げた後、これが strip_tags() + echo preg_replace() コンボで行われていることがわかりました。私はまだPHPに慣れていませんが、理解できました:
- strip_tags() は書式設定を取り出していました (b/c がロールする方法です)
- と を追加して、太字でイタリック体のテキストを表示することができます
- 下線と取り消し線のテキストは CSS スタイルであり、コード (db テーブルに保存されているため) を strip_tags() リストに追加しても問題は解決しませんでした
私の質問は、これを解決するために既存のコードを変更できますか、それとも何か他のもの (おそらく htmlentities()) を使用する必要がありますか?
編集: htmlentities を試しましたが、失敗しました。編集: タグを追加しただけで、問題は 50% 解決されました。テキストに下線が引かれていますが、その後に続く下線のないテキストよりも下に表示されます。下線付きのテキストがサブテキストか何かとして扱われているようです。
コードスニペット:
<div class="display_text_area">
<?php $text = strip_tags(str_ireplace("</p>", "</p><br/>",
$text_detail->description),
'<font><ul><li><br/><strong><em><span style="text-decoration: underline;">'); ?>
<?php echo preg_replace('/(<br[^>]*>\s*){2,}/', '<br/>', $text); ?>
</div>
ここにタグを残して、(a) 試してみたこと、(b) うまくいかなかったことを示します。したがって、(c) 削除または変更する必要があることはわかっています。
よろしくお願いします。