Smart Word Wrap?

Я использую PHP, имеющий следующую строку:

$message = 'hello, DavidPalmerUgroImmIErogandTagroChechiken ho are you?';

Я хочу разделить word ЛЮБОЕ слово строки длинное 15 characters, Как я могу это сделать?

Я искал и нашел ответы о разбиении ВСЕЙ строки, а не просто о разбиении СЛОВА, если это конкретное слово имеет длину более 15 символов. Пожалуйста помоги!

0

Решение

Вы также можете попробовать что-то подобное.

$newMessage = preg_replace('/(\S{15})(?=\S)/', '$1 ', $message);
3

Другие решения

Это относительно базовое решение, и есть вещи, которые вы можете улучшить (лучшее обнаружение слов, размещение 14 букв, затем дефис для прерванных слов и т. д.), но это должно дать вам хорошую отправную точку.

Вы также можете сделать это с помощью регулярного выражения (/[^\s]{15,}/ как ваша основная отправная точка), если вам это удобно — просто лошади для курсов 🙂


Разбейте строку на слова:

$words = explode(' ', $message); // could also split on other punctuation or detect words more reliably here

Повторите слова, чтобы увидеть, если есть> 15 букв

foreach ($words AS $key => $word) {
if (strlen($word) > 15) {
// ...
}
}

затем, когда вы найдете один, порежьте его на более мелкие части

$words[$key] = implode(' ', str_split($word, 15));

и, наконец, присоединиться ко всему.

$words = implode(' ', $words);

Полный код:

$words = explode(' ', $message); // could also split on other punctuation or detect words more reliably here

foreach ($words AS $key => $word) {
if (strlen($word) > 15) {
$words[$key] = implode(' ', str_split($word, 15));
}
}

$words = implode(' ', $words);
3

Просто получите размер вашего слова с

$length = strlen($yourword);

тогда, если это больше 15, вы можете использовать chunksplit разделить его на более мелкие куски.

0
По вопросам рекламы [email protected]