HTML-теги TCPDF ‹›Путаница

Я использую TCPDF для некоторых оценок, которые я создаю для своих учеников начальной школы. Все работало нормально, пока я не добрался до большей и меньшей части. Когда я когда-либо хотел ввести такой большой символ, как этот ‹, он не выходил, думая, что это будет HTML-тег. Мне интересно, есть ли способ исправить эту путаницу. Вот пример кода, чтобы вы могли понять:

 <?php $html .= 'a. < <br />
    b. > <br />
    c. = <br />
    d. + ';          


    // output the HTML content
      $pdf->writeHTML($html, true, false, true, false, ''); ?>

То, что отображается, это:

a.
b. >
c. =
d. +

Как я могу решить эту проблему? Любая помощь приветствуется.

Заранее спасибо.


person user1109244    schedule 21.12.2011    source источник
comment
Возможно, вы могли бы использовать закодированные значения.   -  person Jared Farrish    schedule 21.12.2011
comment
Это странная проблема; если это окажется правдой, я бы предложил сообщить об этом разработчикам TCPDF как об ошибке. Синтаксический анализатор HTML должен интерпретировать пробел после < как оставляя его как объект открытого текста.   -  person Jared Farrish    schedule 21.12.2011
comment
Например: jsfiddle.net/ZaVmz   -  person Jared Farrish    schedule 21.12.2011
comment
закодированные значения < сработали. Единственное, мне пришлось бы изменить все те, которые я создал в своей базе данных, а их более 150. Есть ли способ, которым tcpdf распознает, что это символ вместо тега. Дай мне знать. если не так, чтобы я мог начать работать над всеми ними LOL.   -  person user1109244    schedule 21.12.2011
comment
Я не знаю; Я бы предположил, что это будет по умолчанию. Если вы оставите его как объект (а не кодировку), но удалите конечный <br/>, он будет отображаться правильно?   -  person Jared Farrish    schedule 21.12.2011
comment
Если вам также нужно, вы можете $yourmarkup = str_replace('< ', '&#60', $yourmarkup);, если всегда следует конечный пробел, что, я думаю, вы могли бы сделать без ручного изменения затронутых строк или запустить скрипт для их обновления. Обратите внимание, что парсер html не должен интерпретировать < с пробелом как открытие тега.   -  person Jared Farrish    schedule 21.12.2011
comment
Позвольте мне попробовать, и я дам вам знать. Спасибо большое за вашу помощь.   -  person user1109244    schedule 21.12.2011
comment
Это в некоторой степени связано с тем, что разработчики TCPDF говорят, что это не ошибка, поскольку < должен быть экранирован (закодирован), чтобы быть действительным HTML: sourceforge.net/tracker/   -  person Jared Farrish    schedule 21.12.2011
comment
Возможно, вы могли бы использовать HTML Purifier (ссылка с демонстрацией вашего кода выше), чтобы изменить свой контент, который кажется хорошо исправьте это (которое вы можете скачать и использовать перед выводом в PDF).   -  person Jared Farrish    schedule 21.12.2011
comment
Вау, это сработало! Я собираюсь попробовать это. Спасибо за совет.   -  person user1109244    schedule 21.12.2011


Ответы (1)


  • < нужно экранировать как &lt;
  • > нужно экранировать как &gt;

Вот как работает HTML (не относится к парсеру TCPDF).

person Álvaro González    schedule 14.02.2017