webForumDet fria alternativet

substr mellan ord

PHP

5 svar · 449 visningar · startad av dahlgren

Medlem sedan aug. 20011 946 inlägg
Frågan#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å.

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