На ПХП не сделаешь, только на JS. Потому что в разных браузерах этом может по-разному сработать. ПХП не сможет управлять процессом внутри браузера.
Суть простая, на самом деле (я это реализовывал уже, где-то код валяется). Надо просто взять исходный код и по одному слову вставлять в искомый ДИВ. Как только у ДИВа появляются полосы прокрутки, это является знаком, что последнее слово было лишнее
Удаляем его, полосы прокрутки исчезают. Это слово вставляем уже во второй ДИВ. И так далее, пока либо текст не закончится, либо ДИВы не закончатся.
Что существенно, этот алгоритм прекрасно работает и при ресайзе ДИВов - но ПХП тут уж точно не поможет.
_____________
*
Хэлп по PHP*
Описалово по JavaScript *
Хэлп и СУБД для PostgreSQL*
Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги. *
"накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)