Hallo Sabine,
Ich möchte mit echo nur die ersten drei Textzeilen auf des Datenbankeintrages auf der Hauptseite anzeigen. Wie mache ich das, das es nur die ersten drei Zeilen anzeigt?
Du holst den gesamten Eintrag aus der Datenbank in eine String-Variable. Aus dieser Variablen ziehst du dir dann die ersten drei Zeilen heraus:
$alles = '...'; // deine Zeichenkette aus der Datenbank
$line_count = 3;
$suchmuster = '/\A(.+?[\r\n]){'.intval($line_count).'}/';
if( !preg_match($suchmuster, $alles, $gefunden) ) exit('Fehler: Nichts passendes gefunden!');
$drei_zeilen = $gefunden[0];
// Ausgabe zur Kontrolle:
printf('<pre>%s</pre>', $drei_zeilen);
Hierbei hab ich das Kriterium "Zeile" so definiert, dass eine Zeile aus einem Haufen "Nicht-Zeilenumbruch-Zeichen" (mindestens eines) mit einem "Zeilenumbruch-Zeichen" am Ende besteht. Wobei es sich beim Zeilenumbruch-Zeichen wahlweise um ein "\n" oder ein "\r" handelt.
Mit den 300 Zeichen geht das ähnlich, du musst halt nur einen Weg finden, die "Wörter" zu zählen. Das könnte über den Umweg der Wörter-Zwischenräume ganz gut funktionieren. Du zählst also die Leerzeichen und Zeilenumbrüche zwischen den Wörtern ("white spaces"):
$alles = '...';
$word_count = 300;
$suchmuster = '/\A(.+?\s+){'.intval($word_count).'}/';
if( !preg_match($suchmuster, $alles, $gefunden) ) exit('Fehler: Nichts passendes gefunden!');
$anfang = $gefunden[0];
// Ausgabe zur Kontrolle:
printf('<pre>%s</pre>', $anfang);
Was die Zeichen im $suchmuster bedeuten, erfährst du woanders:
http://www.php-resource.de/tutorials/read/10/1/
http://pcre.nophia.de/explain/index.php
Wikibook:Websiteentwicklung:PHP:Reguläre_Ausdrücke
MffG
EisFuX
Heute kein Zitat.