hmm kanske kan vara ett encoding problem...
Prova att byta strlen($str) till mb_strlen($str,"UTF-8")
Tjenare
Har lite bekymmer med en funktion som kortar ner mina texter till ett antal tecken och klipper vid närmsta ord.
Koden ser ut enligt följande (hämtad här)
function neat_trim($str, $n, $delim='...') {
$len = strlen($str);
if ($len > $n) {
preg_match('/(.{' . $n . '}.*?)\b/', $str, $matches);
return rtrim($matches[1]) . $delim;
}
else {
return $str;
}
}
Problemet är att om databasen inte innehåller 150 tecken, eller vad jag nu väljer att skriva ut, så visas ingenting. Innehåller den alltså 80 så blir det bara tomt...
Om jag dessutom har radbrytningar i databasen så väljer den bort den första delen om den inte innehåller 150 tecken och hoppar till del 2 istället.
Koden som skriver ut texten är:
echo(neat_trim(nl2br(utf8_encode($row['text'])), 150))
Hur får jag den att skriva ut allt även om det skulle vara så att det inte kommer upp i 150 tecken? Och hur får jag preg_match att förstå att den ska fortsätta trots radbrytning? Det handlar om citat, så jag måste bryta raden efter varje citat...
