count (): параметр должен быть массивом или объектом, реализующим Countable - phpWord - PullRequest
0 голосов
/ 02 февраля 2019

Я пытаюсь вывести HTML в слово с помощью phpWord.Однако что-то странное.Он прекрасно работает для следующего кода:

$content = '';
    $content .= '<table><tr><th>Header</th><td>Content</td></tr></table>';
    $content .= '<ul><li>Bullet</li><ul><li>Bullet</li></ul></ul>';
    $content .= '<ol><li>Bullet</li></ol>';
    Html::addHtml($newSection, $content);

, но не работает для этого:

 $content = '';
    $content .= '<table><tr><th>Header</th><td>Content</td></tr></table>';
    $content .= '<p>Bullet</p>';
    $content .= '<p>Cat</p>';
    Html::addHtml($newSection, $content);

и выдает ошибку, упомянутую в заголовке.

ОБНОВЛЕНИЕ

Эта ошибка генерируется из этого файла: \ vendor \ phpoffice \ phpword \ src \ PhpWord \ Shared \ Html.php

В этом методе:

 private static function parseChildNodes($node, $element, $styles, $data)
{
    if ('li' != $node->nodeName) {
        $cNodes = $node->childNodes;
        if (count($cNodes) > 0) {
            foreach ($cNodes as $cNode) {
                if ($element instanceof AbstractContainer) {
                    self::parseNode($cNode, $element, $styles, $data);
                }
            }
        }
    }
}

Но это происходит только при использовании тега <p> html, и это нормально для всех других тегов.

Я также натолкнулся на эту ссылку: addHtml () не поддерживает теги внутри тегов списка,# 521

...