PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [PHP] Nur die 1. 1000 Zeichen ausgeben?


Durcairion
2005-08-15, 18:02:56
Wie kann ich es machen, das ich z.B. von einem Text welcher in einer MySQL DB gespeichert ist, als "Vorschau" nur die ersten 1000 Zeichen ausgeben und dann einfach nen Link "mehr" mache und darüber sieht der User dann alles.

Wie begrenze ich die Ausgabe auf 1000 Zeichen?

MfG,
soucy

MadMan2k
2005-08-15, 18:11:26
SELECT SUBSTRING(str, 0, 1000) FROM ...

Expandable
2005-08-16, 01:16:22
Das ganze geht dann auch direkt im PHP-Skript: echo substr($variablenName, 0, 1000); Obige Vorgehensweise ist jedoch schöner, wenn Du den String nur auf 1000 Zeichen begrenzt brauchst.

Kinman
2005-08-16, 18:44:35
Beides unschön ;) Man sollte doch nicht mitten in einem Wort abschneiden, oder?


function getFirstLetters($str, $nb)
{
if ($nb >= strlen($str))
{
$nb = strlen($str);
}

$wrapStr = substr($str, 0, $nb);
$nb = strlen($wrapStr) - strlen(strrchr($wrapStr," "));

return substr($str, 0, $nb);

}


Ich hoff es stimmt, habs jetzt nicht getestet, sondern zusammenkopiert aus meiner Funktion: http://www.forum-3dcenter.org/vbulletin/showthread.php?t=240911

Wenns net geht, sage ich korrigier dann!

mfg Kinman

EDIT: lol, einen Fehler hab ich schon selbst gefunden ;)
EDIT2: funktioniert. man kanns aber noch ein bisschen verbessern:


function getFirstLetters($str, $nb)
{
$postStr = "...";

if ($nb >= strlen($str))
{
$nb = strlen($str);
$postStr = "";
}

$wrapStr = substr($str, 0, $nb);
$nb = strlen($wrapStr) - strlen(strrchr($wrapStr," "));

return substr($str, 0, $nb) . $postStr;

}

Somit fügt er ein ... an, wenn der String zu kürzen war.