У меня есть HTML-страница, которая форматирует текст, как показано ниже. Я хочу создать текстовый файл с тем же форматированием.
Text1 Text2
This is the paragraph1
Text
01.03.2017
This is the paragraph 2
В настоящее время я использую html2text
класс, но вывод, который я получил, отличается, это показывает это ниже вывода
include("html2text/html2text.php");
$text = convert_html_to_text($my_var);
Формирует
Text1 Text2 This is paragraph 1 Text 01.03.2017 This is the paragraph2
Так что все в одной строке. Но я хочу в том же формате, что и при рендеринге HTML-документа. Как мне этого добиться?
Это в основном проблема стиля.
Для некоторого фона, я рекомендую вам заглянуть в Каскадные таблицы стилей (CSS). Браузеры используют код CSS, чтобы определить, как HTML должен отображаться пользователю.
Это означает, что эта проблема автоматически решается только для форматов документов, которые поддерживают стилизацию. Вы можете искать конвертеры, которые принимают HTML + CSS в качестве входных данных и выводят выбранный вами формат. Например, посмотрите на pandoc.
Для простого текста эту проблему невозможно решить автоматически. Вам нужно будет перевести отрицательное пространство или пробел в типизированные пробелы, но довольно трудно определить, сколько именно вам нужно.
Ваш HTML-файл не содержит HTML-тегов, так почему вы хотите преобразовать его в текст? Это уже текстовый файл.
Вы можете добавить теги «pre» вокруг переменной $ my_var, возможно, используемая вами библиотека сохранит пробел внутри тега.
Если это не работает, вы можете сначала заменить все двойные пробелы другой строкой, выполнить преобразование, а затем снова заменить вашу строку двойными пробелами.