webForumDet fria alternativet

Dela långa ord...

PHP

3 svar · 316 visningar · startad av toja

Medlem sedan mars 2001218 inlägg
Frågan#1

Problem...

Detta kollar ju en sträng, om den är längre än 20 ord så delar den med ett mellanslag, fungerar utmärkt:

$text = chunk_split($text, 20, " ");

Men...
Jag vill gå igenom en hel text... och kolla varje ord... och dela om just det ordet är mer än 20 tecken...
Finns det något lätt sätt... någon funktion som kollar varje ord.. eller måste jag på något sätt dela upp det i en array och köra på så sätt... och i så fall.. något smidigt sätt..?!!

Medlem sedan okt. 2004392 inlägg
#2

Det här är vad jag tror du menade: Att varje ord som är längre än 20 tecken ska få ett mellanslag i mellan. Dålig förklaring, men titta hur resultatet blir.

<?
function klippatext($text) {
$text2=explode(" ",$text);
$antalord = count($text2);
for($i=0;$i<$antalord;$i++){
$text2[$i] = chunk_split($text2[$i], 20, " ");
$text3 = $text3.$text2[$i];
}

return $text3;

}

$text="Jag heter Uffe och gillar att hooooooooooooooooooooooooooooooppa hop reeeeeeeeeeeeeeeeeeeeeeeeeeeep på vardagarnaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";
echo klippatext($text);
?>

Resultat: Jag heter Uffe och gillar att hooooooooooooooooooo oooooooooooppa hop reeeeeeeeeeeeeeeeeee eeeeeeeeep på vardagarnaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaa aaa

Notera att varje ord som är längre än 20 tecken får ett mellanslag sen fortsätter ordet, fast ord som inte är längre än 20 tecken återstår orörda

Medlem sedan aug. 20002 975 inlägg
#3

Testa med

$text = wordwrap($text, 20, "\n", 1);
Medlem sedan mars 2001218 inlägg
#4

Hehe.. varför det avancerade första skriptet när det som Matte visa fungerar prefekt... ??? Tack för båda svaren!!!

260 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
128 ms — deklarationer (db)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)
124 ms — ändringar (db)