'mehr lesen'-Link in News

mammuteffect

Mitglied
Hallo.
Ich habe ein kleines Problem:
Wenn ich zB News schreibe, möchte ich, dass in dem Artikel nur eine bestimmte Anzahl von Zeichen wiedergegeben wird und wenn ich dann in den Artikel zum Beispiel <break> schreibe, wird der Text in der kurzen Variante bis dorthin wiedergegeben und wenn man dann auf "mehr lesen" klickt, bekommt man die lange anzeigt.
Für das bessere Verständnis ein kleines Beispiel:

Text:
"Bla bla bla <break> Muh muh muh"

Wiedergabe kurz: "Bla bla bla - mehr lesen"
Wiedergabe lang: "Bla bla bla muh muh muh"

Ich hoffe, ihr versteht was ich meine. Für Lösungsvorschläge wäre ich sehr dankbar.
MfG

effect
 
Hier ein Vorschlag zur Ausgabe der verkürzten Version:
PHP:
echo current(split('<break>', $string)).' – <a href="…">mehr lesen</a>';
 
Eine Erklärung für was, für den Codevorschlag? Der Algorithmus zerlegt die Zeichenkette $string anhand des Suchmusters <break> und wandelt sie in ein Array um. Dessen erstes Element wird zusammen mit dem „mehr lesen“-Verweis ausgegeben.
 
Der ganze Spaß ging aber auch mit substr();, einfach so (dabei könntest du den break-"tag" aus dem String nehmen):

PHP:
$anzeigen=$string
if(strlen($string)>220){
     $anzeigen=substr($string,0,180)."...<a href='linkzurseite.php'>mehr</a>";
}

echo $anzeigen;

Zur Erklärung:
Hier wird überprüft ob der String über 220 zeichen hat, ist das der Fall wird er auf 180 Zeichen gekürzt und mit einem Link ausgestattet der dann zur gewünschten Seite führt. Hat der String weniger als 220 Zeichen wird er ganz normal (ungekürzt und ohne link) angezeigt.
Jetzt fragst du dich wahrscheinlich warum ich auf 220 Zeichen prüfe aber auf 180 Zeichen kürze. Der Grund ist der:

Wenn ich sowohl auf 180 prüfe als auch kürze kann es sein, dass der Text zb. 181 Zeichen hat (zb. ein Punkt). Wenn das der Fall ist würde der String trotzdem gekürzt und wenn ich dann auf den Link "mehr" klicke, wird mir im Grunde gar nicht mehr angezeigt! Darum lasse ich auf mehr Zeichen prüfen! Verstanden?
 
Zurück