Text aus Datenbank auslesen und bestimmte anzahl von wörtern ausgeben

bensky

Erfahrenes Mitglied
Hi freunde,

Hat mal einer von euch versucht einen Text mit z.B. ca 500 Wörtern auszulesen, aber nur z.B. 100 Auszugeben mit dem vermerk. z.B. weiterlesen zu versehen`?

Vielleicht hat ja einer von euch ne Idee ;)

Schon mal danke im voraus.
 
Hallo bensky,

so ganz spontan fällt mir da folgendes ein:

PHP:
   $text="TEXT TEXT TEXT";
   $array_text=explode(" ",$text);
   
   for($x=0;$x<100;$x++)
   {
   echo $array_text[$x]." ";
   }
   
   echo " <a href='#'>mehr</a>";
Trenne einfach den Text an jedem Leerzeichen und schreibe alle Worte in ein Array. Dann gibst du nur die Array-Elemente 0 bis 99 aus. Ist vielleicht etwas umständlich, funktioniert aber.
 
Dazu brauchst du nicht einmal unbedingt PHP. Das kannst du sofort über die MySQL Abfrage lösen und via SUBSTRING_INDEX, wie folgt.

PHP:
SELECT SUBSTRING_INDEX(`text`,' ',100) as `text` FROM `tabelle` WHERE ...

Die Erläuterung von SUBSTRING_INDEX aus der MySQL-Dokumentation schaut folgendermaßen aus und beschreibt genau, was du willst. Es wird der Teilstring zurückgegeben, bis zum der in "delim" angegebene Wert, in unserem Fall ein Leerzeichen, zum "countesten" mal, bei uns 100, aufgetaucht ist.

SUBSTRING_INDEX(str,delim,count)

Returns the substring from string str before count occurrences of the delimiter delim. If count is positive, everything to the left of the final delimiter (counting from the left) is returned. If count is negative, everything to the right of the final delimiter (counting from the right) is returned.

mysql> SELECT SUBSTRING_INDEX('www.mysql.com', '.', 2);
-> 'www.mysql'
mysql> SELECT SUBSTRING_INDEX('www.mysql.com', '.', -2);
-> 'mysql.com'

Ähnliches wäre wohl auch über die Kombination verschiedener PHP Stringfunktionen wie [phpf]substr[/phpf] und [phpf]strpos[/phpf] zu lösen, aber warum kompliziert, wenns auch einfach geht? ;)
 
Euch beiden erstmal vielen dank, ich versuch mal die vorschläge einzubauen.

Gibt es denn so global in php keine funktion die die werte in einem array auszählen kann und sie dann quasi "beschneidet"? Gruß
 
Kennst du [phpf]array_slice[/phpf] und [phpf]count[/phpf] nicht? In solchen Fällen "Gibt es nicht ...?" ist es eigentlich immer das beste in der PHP Dokumentation in die entsprechende Sparte (String-Funktionen, Array-Funktionen, ...) zu gehen und einfach mal zu gucken, was es da so alles gibt.
 
Zurück