Задать вопрос
@miniven

Как в PHPWord добавить перенос строки?

Использую PHPWord. Взял шаблон документа и устанавливаю значения в переменные.

Вот таким образом сделал строку с переносами и пытаюсь подставить её в документ:
foreach ($employees as $program => $employee) {
		$employee_string = $employee_string . $nc->q($employee[$program], NCL::$DATELN) . ', ';

		foreach ($employee as $single) {
			$empList = htmlspecialchars($empList . $single . '<br>');
		}

		$programs_and_employees = htmlspecialchars($programs_and_employees . '«' . $programs[$program] . '»' . ': <br>' . $empList . '<br>');
	}


А в ответ получаю &lt;br&gt;<br>
Без htmlspecialchars документ вообще не открывается, а выдает ошибку. Как исправить?
  • Вопрос задан
  • 5144 просмотра
Подписаться 1 Оценить Комментировать
Решения вопроса 1
@miniven Автор вопроса
Я заменил br на \n
И потом заменил \n:
$programs_and_employees = str_replace("\n", "<w:br/>", $programs_and_employees);

И htmlspecialchars стал не обязательным
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 3
alexey-m-ukolov
@alexey-m-ukolov Куратор тега PHP
$text = "foo\nbar\nfoobar";
$textlines = explode("\n", $text);

$textrun = $section->addTextRun();
$textrun->addText(array_shift($textlines));
foreach($textlines as $line) {
    $textrun->addTextBreak();
    // maybe twice if you want to seperate the text
    // $textrun->addTextBreak(2);
    $textrun->addText($line);
}

https://github.com/PHPOffice/PHPWord/issues/553#is...
Ответ написан
Комментировать
@lament
Попробуй PHP_EOL
Ответ написан
Digiport
@Digiport
PHP рулит
У меня в LibreOffice получилось вот так:
$text = str_replace(array("\r\n","\n","\r"), "</w:t><w:br/><w:t>", $text);
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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