Я использую PHP, имеющий следующую строку:
$message = 'hello, DavidPalmerUgroImmIErogandTagroChechiken ho are you?';
Я хочу разделить word
ЛЮБОЕ слово строки длинное 15 characters
, Как я могу это сделать?
Я искал и нашел ответы о разбиении ВСЕЙ строки, а не просто о разбиении СЛОВА, если это конкретное слово имеет длину более 15 символов. Пожалуйста помоги!
Вы также можете попробовать что-то подобное.
$newMessage = preg_replace('/(\S{15})(?=\S)/', '$1 ', $message);
Это относительно базовое решение, и есть вещи, которые вы можете улучшить (лучшее обнаружение слов, размещение 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);
Просто получите размер вашего слова с
$length = strlen($yourword);
тогда, если это больше 15, вы можете использовать chunksplit разделить его на более мелкие куски.