webForumDet fria alternativet

10 första orden i ett fält...

PHP

2 svar · 231 visningar · startad av kalleklätter

Medlem sedan apr. 200354 inlägg
Frågan#1

Tjena allihop!
Jag har en liten fråga.

Hur gör man i PHP för att läsa bara t.ex. de 10 första orden från ett fält i en databas...Så att utskriften på en sida ser ut så här:

"Idag är det söndag och jag gick ner på stan och..."
"Läs mer..."

När man klickar på "läs mer" kommer hela innehållet från fältet i databasen...Om ni förstår vad jag menar? :birp

Nån som vet hur man löser detta?
/Kalleklätter

Medlem sedan aug. 20002 975 inlägg
#2

Testa något på det här hållet:

$array = explode(" ", $row['kolumn']);

if (sizeof($array) > 10) {

   array_splice($array, 10);
   echo implode(" ", $array).'...';

} else {

   echo $row['kolumn'];

}
Medlem sedan dec. 2003153 inlägg
#3

Ett alternativ är ju:

while (strpos($DBtext, " ") > 0 && $i < 10) {
	$text .= $text . substr($DBtext, strpos($DBtext, " "));
	$DBtext = substr($DBtext, -1 * (int)(strlen($DBtext) - strpos($DBtext, " ")));
}

Sen innehåller $text dina 10 ord. Vill du ha mer ord så ökar du bara i:
while (strpos($DBtext, " ") > 0 && $i < 10)

Har inte provat koden eller nåt, så lite finjustering får du kanske göra själv.

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