Разделить html-код на две равные части контента, в PHP или JS

Я хочу взять содержание статьи веб-сайта и создать два или более столбца текста. Трудная часть заключается в том, что я должен хранить теги html и закрывать их, если резка выполняется внутри <p></p> например.

Пример:

 <p><span>One two three <strong>four</strong></span> five six</p> 

Результат:

 <p><span>One two three<span><p> <p><span><strong>four</strong> five six</p> 

Таким образом, пользователь будет

 One two three four five six 

    Вы должны отслеживать открытые теги в структуре данных стека. Затем, когда вы достигнете точки разделения, вам нужно закрыть все теги, которые находятся в стеке в этом точном порядке. То же самое для открытия тегов в следующей строке (в обратном порядке).

    Если вы собираетесь использовать javascript, я бы предложил http://welcome.totheinter.net/columnizer-jquery-plugin/