substr mellan ord

PHP

5 svar · 452 visningar · startad av dahlgren

Medlem sedan aug. 20011 946 inlägg
Trådstart#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)."..." ;
Medlem sedan juli 20033 147 inlägg
#2

Otestat

function shortString($string, $num) {

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

}

echo shortString($r['content']);
Medlem sedan juni 20034 013 inlägg
#3
echo(substr($r['content'], 0, strrpos(substr($r['content'], 0, 150), " "));
Medlem 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.

Medlem 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);

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

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

264 ms totalt · 4 externa anrop · v20260731065814-full.d34c6d5a
127 ms — deklarationer (db)
0 ms — hämta statistik (cache)
133 ms — hämta tråd, inlägg och bilagor (db)
123 ms — ändringar (db)