Php: удалить все теги, но «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 внутри) будет "кликабельным".
Например, вы можете увидеть, как это отображается сейчасВот, Видите последнюю строку объявления? Я бы хотел, чтобы ссылка на сайт была "кликабельной".
Как бы вы сделали?