Как найти HTML-тег и удалить его - PullRequest
0 голосов
/ 26 ноября 2011

Я создал систему описания, но все, что не работает, это моя система «поиска и удаления нежелательных тегов» ... Вот код:

$mystring = $description;
$findme   = '<';
$pos = strpos($mystring, $findme);
echo $pos;

if ($pos == false) {
    $user = mysql_query("SELECT * FROM members WHERE username='$myusername' AND password='$mypassword'");
    while($row=mysql_fetch_array($user)) {
        mysql_query("UPDATE members SET description = '$description' WHERE username = '$myusername' AND password = '$mypassword'");
        echo "<tr><td colspan='2'><span style='color:#0076c9;'>Your description has successfully been changed! Go back to your page to see the changes!</span></td></tr>";
    }
} else {
    echo "<tr><td colspan='2'><span style='color:#F00;'>Invalid input! Make sure that no other code than <br /> can be typed in!</span></td></tr>";
}

Есть ли возможный способ сделать это? Я видел это на YouTube, но слишком хорошо! Кто-нибудь, кто знает, как это сделать?

О, и я также заметил, что моя функция показывает только положение первого тега ... Не все теги, и он не может видеть разницу между <br /> (что разрешено) и <img> (не допускается).

Ответы [ 3 ]

3 голосов
/ 26 ноября 2011

Если вы хотите удалить теги HTML и разрешить только некоторые из них, вы можете использовать такую ​​функцию strip_tags

strip_tags($text, '<br><a>');

Это вернет введенный вами текст $ text без тегов, за исключением тегов <br> & <a>. Выможете прочитать больше о strip_tags Здесь

1 голос
/ 26 ноября 2011

Используйте встроенную функцию strip_tags .

string strip_tags (строка $ str [, строка $ allowable_tags])

Пример:

$str = "<a href='http://google.com'>Here</a> we go<br />";
echo strip_tags($str, "<br>");

Вывод: "Вот и мы«

0 голосов
/ 26 ноября 2011

Вам придется добавить дополнительные теги или просто сделать их общими, вынув раздел в скобках:

if(preg_match("/<(span|html|table).*?>/", $description)) {
    rejected...
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...