2016-12-28 1 views
-2

J'ai un problème avec la fonction strip_tags de PHP. J'ai une liste qui inclut une liste blanche pour les balises html. Cette liste est générée à partir d'une fonction comme:Je ne peux pas utiliser la fonction strip_tags de PHP avec une autre fonction

setAllowedHtmlTags(); 

et de sortie pour cette fonction est:

"<a><table><br>" 

Je veux éliminer les autres balises html, mais cela. Par conséquent, j'utilise la fonction de strip_tags comme suit:

echo strip_tags("sample text", setAllowedHtmlTags()); 

Et voici ma fonction:

function setAllowedHtmlTags() 
{ 
    $db  = new PDO('mysql:host=' . host . ';dbname=' . DBNAME_SCHEMA, user, password); 
    $sql = "SELECT html_tag FROM allowed_html_tags_table"; 
    $query = $db->query($sql); 

    $tagList = ""; 

    if ($query->rowCount()){ 
     foreach($query as $row){ 
      $tagList .= $row['html_tag']; 
     } 
    } 

    return htmlentities($tagList); 
} 

Mais cela ne fonctionne pas. strip_tags fonction supprime toutes les balises html, y compris les mines dans ma liste blanche. Pouvez-vous s'il vous plaît m'aider à résoudre ce problème? Est-ce que votre fonction setAllowedHtmlTags() renvoie vraiment ce que vous nous avez dit?

+7

Ajoutez le code de la 'fonction setAllowedHtmlTags' – Dekel

+3

[semble fonctionner comme prévu] (https://3v4l.org/RvojD) –

+0

Pas vraiment important, mais pourquoi voudriez-vous utiliser une fonction juste pour revenir' »


"', pourquoi ne pas configurer un 'const' ou quelque chose. –
Pitchinnate

Répondre

-1

Essayez un var_dump(setAllowedHtmlTags()); pour voir ce que la fonction renvoie vraiment.

Ou peut-être que vous vouliez appeler g etAllowedHtmlTags()?

+0

Oui, il retourne exactement la chaîne que je m'attendais. –

0

Ok, j'ai trouvé le problème, renvoyant la valeur avec la fonction html_entity_decode() à la place la fonction htmlentities() a fonctionné pour moi.