webForumDet fria alternativet

substr mellan ord

5 svar · 449 visningar · startad av dahlgren

dahlgrenMedlem sedan aug. 20011 946 inlägg
#1

Använder koden nedan för att begränsa nyheterna till max 150 tecken. Går det på något sätt att göra så den går tex 140 tecken och sen bryter vid nästa mellanslag för att inte bryta i ett ord?

echo substr($r['content'], 0, 150)."..." ;
MeleaMedlem sedan juli 20033 147 inlägg
#2

Otestat

function shortString($string, $num) {

   return preg_replace ("/([^\s]+)$/", "", substr ($string, 0, $num));

}

echo shortString($r['content']);
tydalMedlem sedan juni 20034 013 inlägg
#3
echo(substr($r['content'], 0, strrpos(substr($r['content'], 0, 150), " "));
dahlgrenMedlem sedan aug. 20011 946 inlägg
#4

Tack för hjälpen. Melea: Din kod fungerar fast bara första gången allt ligger i en loop så det kan behövas skriva ut saker flera gånger.

MeleaMedlem sedan juli 20033 147 inlägg
#5

dahlgren skrev:

[...] Melea: Din kod fungerar fast bara första gången allt ligger i en loop så det kan behövas skriva ut saker flera gånger.

Hm, skumt!
Hur skriver du ut loopen? Detta borde funka.

function shortString($string, $num) {

   return preg_replace ("/([^\s]+)$/", "", substr ($string, 0, $num));

}

while($r = mysql_fetch_assoc($sql)) {

   echo shortString($r['content'], 55);

}
dahlgrenMedlem sedan aug. 20011 946 inlägg
#6

Nu fick jag koden att fungera. Hade visst råkade lägga functionen i loopen också.

126 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
124 ms — hämta tråd, inlägg och bilagor (db)