2016-12-28 4 views
-2

У меня проблема с функцией PHP strip_tags. У меня есть список, который включает белый список тегов html. Этот список генерируется из функции, как:Я не могу использовать функцию strip_tags PHP с другой функцией

setAllowedHtmlTags(); 

и выход для этой функции:

"<a><table><br>" 

Я хочу, чтобы исключить другие HTML-теги, но это. Поэтому я использую функцию strip_tags следующим образом:

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

А вот моя функция:

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); 
} 

Но это не работает. strip_tags Функция удаляет все теги html, включая мины в моем белом списке. Не могли бы вы помочь мне решить эту проблему?

+7

Добавьте код 'функции setAllowedHtmlTags' – Dekel

+3

[Кажется, работает, как ожидалось] (https://3v4l.org/RvojD) –

+0

Не очень важное, но почему бы вы использовали функцию только для возврата'»


"', почему бы не настроить 'const' или что-то еще. –
Pitchinnate

ответ

-1

Действительно ли ваша функция setAllowedHtmlTags() действительно возвращает то, что вы нам сказали? Попробуйте var_dump(setAllowedHtmlTags());, чтобы увидеть, что функция действительно возвращает.

Или, возможно, вы хотели позвонить g etAllowedHtmlTags()?

+0

Да, он возвращает точно строку, которую я ожидал. –

0

Хорошо, я нашел проблему, возвращая значение с помощью функции html_entity_decode(), а функция htmlentities() работала для меня.

Смежные вопросы