htmlspecialchars удаляет форматирование

я вызываю htmlspecialchars функцию в другой функции в классе, но когда я делаю это, даже при том, что данные отображаются, это удаляет все форматирование, показывающее данные в одной строке.

это - код:

class Name {
    . .. .
    public function h($s) 
    {
    echo htmlspecialchars($s, ENT_QUOTES);
     }

    public function formatQuotes($row)
    {

    return "<p id=\"ab_quotes\">" . this->h($row['cQuotes']) . "</p>"
    . "<p id=\"ab_author\">" . this->h($row['vAuthor']) . "</p>";             
    }

}

если я удаляю ссылку на функцию htmlspecialchars, она отображает данные, как она должна.

ОБНОВЛЕНИЕ:

это - CSS, которую я применил:

p#ab_quotes{
    font-size: 22px;
    word-wrap: break-word;
    position: absolute;
    top: 80px;
    left: 5px;
    padding: 8px 6px;
    }

p#ab_author {
    font-size: 15px;
        position: absolute;
    top: 200px;
    right: 5px;
    padding: 8px 6px;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: #EB3B55;
    }

нет никакого HTML в $row ['cQuotes'] и переменных Автора. это - форматирование CSS, которое удалено, когда htmlspecialchars реализован.

другая вещь, которую я заметил, была этим, если я удалил ENT_QUOTES, это работает, но снова с ним, он удаляет форматирование. почему это так?

1
задан input 23 July 2010 в 11:17
поделиться

2 ответа

Проблема может заключаться в том, что функция h() должна возвращать данные, а не передавать их эхом (исходя из того, как вы используете результат h())

1
ответ дан 2 September 2019 в 22:49
поделиться

Что вы имеете в виду под форматированием? Если вы имеете в виду код HTML, htmlspecialchars заменит эти важные для HTML символы на их сущности:

  • '&' (амперсанд) становится '&'
  • '' '(двойная кавычка) становится' "', если ENT_NOQUOTES не установлен .
  • '' '(одинарная кавычка) становится' '', только если установлена ​​ENT_QUOTES.
  • '<' (меньше чем) становится '<'
  • '>' (больше чем) становится '>'

(взято отсюда: http://php.net/manual/en /function.htmlspecialchars.php)

Конечно, тогда никакое форматирование не будет иметь никакого эффекта. В этом суть htmlspecialchars ().

1
ответ дан 2 September 2019 в 22:49
поделиться
Другие вопросы по тегам:

Похожие вопросы: