0
ここに私の問題があります:php:すべてのタグを削除しますが、テキスト内の "a href"を削除します
私は自分が望むものを入力できるテキストエリアを持っています。
彼は、このテキスト(POSTメソッド)を送信すると、私は「そのまま」保存しておきたいので、サーバー側で私は(ユーザーが入力したもの(データベースに書き込む前に、それをすべてでをフィルタリングしません。多分それは彼がハックしようとした証拠として使うことができます)。
はその後、それを出力する前に、私はこの関数を使用します。
public function textForWeb($texte,$br=true)
{
if ($br) {
return
mb_ereg_replace("((\r)?\n)", "<br />",
htmlentities(
stripslashes($texte),
ENT_QUOTES, 'UTF-8'
)
);
}
else {
return
htmlentities(
stripslashes($texte),
ENT_QUOTES, 'UTF-8'
);
}
}
ので、テキストが適切にろ過し、エンコードされたUTF-8
のままです。 <a href="http://url">xxx</a>
手つかずされる:
は、しかし、問題は、私はをすべてこれらのテキストがしたいということです。私。私がそれを表示すると、リンクは "http://
"との中のの中のjavascriptなしのリンクのみが "クリック可能"になります。
たとえば、今表示されている方法を確認できます。here。発表の最後の行を参照してください?私はウェブサイトへのリンクをクリック可能にしたいと思います。
どうすればよいですか?
なぜstrip_tags()を使用しないのですか?これは、javascriptのliksを解決しませんが、まだ単一の関数を解決します。ストリップタグの後にtouはhttpを使用してすべてのhref属性を削除できます。おそらく正規表現で。 – Kristian
はい、しかし、 'href ="(?! http) 'だけを取り除くとそれほど悪くはありませんが、構文が壊れる可能性はありますが、そのリンクのolnyはjavascriptでおそらくexcecuteできませんでした。 – Kristian
''タグをエンティティに変換し、 ''タグを適切にフィルタリングして、有効なURL(= no 'JavaScript')であることを確認できるようにする必要があります –