substituir todas as tags html, exceto certas, por htmlspecialchars () no PHP?
Gostaria de processar minha entrada de usuário para permitir apenas determinadas tags html e substituir as outras por suas entidades html, bem como substituir caracteres não-tag. Por exemplo, se eu quisesse apenas permitir que o<b>
e a<a>
tag, então
allow_only("This is <b>bold</b> and this is <i>italic</i>.
Moreover 2<3 and <a href='google.com'>this is a link</a>.","<b><a>");
deve produzir
This is <b>bold</b> and this is <i>italic</i>.
Moreover 2<3 and <a href='google.com'>this is a link</a>.
Como posso fazer isso em PHP? Estou cientestrip_tags()
que poderetirar as tags indesejadas completamente e estou ciente dehtmlspecialchars()
que pode substituirtodas as tags por suas entidades html, mas nenhuma onde apenas tags específicas são substituídas. Como isso pode ser feito em PHP?
E se não houver uma maneira 'comum' de fazer isso, como devo, em geral, processar a entrada do usuário que pode ter um html regular válido, mas também pode ter<
sinais e código html potencialmente perigoso?