1

サイトのフロント エンドにフォーラムのタイトルを表示する PHP フォーラム アプリケーション (PHPBB) があります。このタイトルを生成するコードはstripBBCode($row1["topic_title"])

各フォーラムのタイトルは、実際には次のように表示される引用です。

心に情熱があれば、達成できないことは何もありません。"それで?" スワミ・シヴァナンダ

PHP は、タイトル内の一重引用符と二重引用符に問題があるため、これらの引用符のいずれかに遭遇すると、実際には PHP の解析を停止します。PHP がこれを行っている理由は理解していますが、PHP が引用符とアポストロフィを含むテキストの文字列を解析できるようにする実用的なソリューションがありません。

stripBBCode($row1["topic_title"])この句読点を許可するにはどうすればよいですか?

前もって感謝します。

4

1 に答える 1

0

こんなに古いのに、なぜこの質問に答えがないのか、私は非常に興味があります。結局のところ、ユーザーが任意のテキストを入力できるテキスト フィールドを持つフォームを処理するときはいつでも、この問題に遭遇します。

私の例では、「バケット リスト」アイテムのタイトル フィールドでした。一重引用符と二重引用符で文字列を入力してみました。これらは DB に正しく格納されましたが、表示された文字列は最初の ' または ".

私にとっては、htmlspecialchars()うまくいきました。具体的には、入力フィールドは次のようになります。

echo '<input type="text" value="'.htmlspecialchars($this->title).'">';

そのフィールドは、文字列内の ' と " を正しく表示するようになりました。

于 2020-05-13T14:46:42.353 に答える