Я собираюсь сделать алгоритм переноса слов в PHP. Я хочу разбить небольшие фрагменты текста (короткие фразы) в n строки максимум m символов (n не указан, поэтому при необходимости будет столько строк). Особенность заключается в том, что длина линий (в символах) должна быть максимально сбалансирована по линиям.Сбалансированный перенос слов (минимальная рвность) в PHP
Пример ввода текста:
How to do things
Неправильный выход (это нормальное поведение перенос слов), м = 6:
How to
do
things
Желаемый выход, всегда т = 6
How
to do
things
Doe у кого есть предложения или рекомендации о том, как реализовать эту функцию? В принципе, Я ищу что-то для довольно коротких коротких фраз на двух или трех (насколько это возможно) линии с одинаковой длиной.
Update: Кажется, я ищу именно для Minimum raggedness word wrap algorithm. Но я не могу найти какую-либо реализацию на реальном языке программирования (кто-то, тогда я могу преобразовать его в PHP).
Update 2: Я начал баунти для этого. Возможно ли, что не существует какой-либо публичной реализации алгоритма минимальной рваности на любом процедурном языке? Мне нужно что-то написанное таким образом, чтобы его можно было перевести в процедурные инструкции. Все, что я могу найти сейчас, - это просто реплика (общее) уравнение, которое, однако, нуждается в оптимальной процедуре поиска. Я буду признателен также за реализацию, которая может только приблизить этот оптимальный алгоритм поиска.
В чем вопрос? – rdlowrey
Мне нужны предложения и рекомендации по реализации этой функции. Я не знаю, с чего начать, я никогда раньше не делал таких вещей. –
Я предлагаю вам взглянуть на пробелы в качестве персонажа. При подсчете общего количества символов, если общие символы слова (m) больше предела на строку (n), вы восполняете его при n + 1 с пробелами в конце n + 1. – nand