Как я могу вставить тег <br>каждые 115 символов - PullRequest
1 голос
/ 30 декабря 2011

Как вставить тег <br> каждые 115 символов? Какое решение лучше: strlen или regex?

Как мне это сделать?

Лучше понять, как был сделан раздел комментариев в stage6.

http://web.archive.org/web/20071120055812/http://stage6.divx.com/user/DorkmanScott

Мне нужны именно отформатированные комментарии.

Ответы [ 2 ]

6 голосов
/ 30 декабря 2011

Это на самом деле не может быть сделано.Потому что, если вы просто наивно вставляете тег <br> каждые 115 символов в HTML-документ, вы можете оказаться в другом теге, который, очевидно, не будет тем, что вы хотели.Вы можете использовать анализатор HTML для анализа документа и вставлять тег <br> только в тех местах, где есть текст, но, я думаю, это может быть немного проблематично, поскольку вам придется учитывать встроенные элементы там, где вы захотитепоставить тег <br>.

Я полагаю, что ваша проблема связана с контролем ширины вашей веб-страницы, и вам, вероятно, было бы лучше использовать CSS для управления шириной документа.

4 голосов
/ 30 декабря 2011

Хотя в комментариях предполагается, что это неправильный подход к использованию (то есть вам не нужно вставлять <br /> элементы, если ограничивающий элемент настроен на правильную перенос), если вам абсолютно необходимо что-то достичь в PHPтогда wordrap () , вероятно, самая безопасная функция для вас:

$wrappedString = wordwrap($string, 115, '<br />');

Это следует использовать, только если вы имеете дело с текстом, а не с необработанным HTML, в противном случае вы можете столкнуться сПроблемы с DOM.Действуйте осторожно.

EDIT : если вы хотите разбить длинные слова, чтобы они не выходили за пределы ограничивающей рамки, вы можете добавить мягкие дефисы (&shy;) в более длинные слова.

...