Von HTML-Fließtext die Zeilen zählen

Hallo an alle,

ich möchte eine Seite erstellen, die ähnlich wie http://www.1und1.de aussieht. Mir geht es um die Kurznachrichten, also diese Kästen mit einem Bild, etwas Text und dem Link „mehr“. Das ganze soll über eine MySQL-Datenbank befüllt werden.
Aber jetzt zu meiner Frage:
gibt es eine Möglichkeit, die Anzahl der resultierenden Zeilen festzustellen, um an geeigneter Stelle den Text zu kappen und den „mehr“-Link automatisch zu generieren.

Gruß
Michi

was heisst automatisch?
Du musst schon ein wenig was dazu bauen *g*

Mit strlen($text) erhältst Du die Anzahl der Buchstaben…
mit substr($text,$anfang,$laenge) bekommst Du einen Teil wieder zurück.
Wenn Du jetzt Dein Script so addaptierst dass wenn Du bei über($)laenge den Link setzt und den Text kappst, dann ist das schon gut so :wink:

könnte so aussehen:

if (strlen($result[text]) \> 100)
 {
 $text = substr($result[text],0,100)." [weiter...](link.php?view=%2524result%255Bid%255D)";
 }
else $text = $result[text];

Schon mal danke für die Antwort,

aber es geht mir gerade darum nicht die Textlänge zu ermitteln sondern die Zeilenanzahl.
Ich hol mal ein klein wenig weiter aus. Es handelt sich um „div“-Blöcke die befüllt werden sollen. Die größe der Blöcke ist fest vorgegeben.
Wenn ich die Textlänge nehme, muss ich davon ausgehen, dass der Text zum größten Teil aus breiten Buchstaben (W,M,etc) besteht und den Text an entsprechender Stelle abschneiden. Das klappt wunderbar, bis der Text z.B. fast nur schmale Buchstaben (i, j oder Satzzeichen) enthält
dann bleibt der halbe Block leer.

Ein kleines Beispiel
iiiiiiiiiiiiiiiiiiii
MMMMMMMMMMMMMMMMMMMM
Beide Zeilen haben 20 Zeichen.

Die Zeilenhöhe bleibt aber immer gleich.
Alternativ könnte ich auch eine function ähnlich Textwidth aus Delphi benutzen, hab aber nichts entsprechendes gefunden.

Gruß

Michi

sowas ist mit der GD2 Bibliothek möglich eine Textlänge auszumessen - in php würde ich davon aber abraten.
Schriftgrösse kann in fast allen Browsern grösser gestellt werden - Divs bleiben aber meistens gleich gross - dann ändern sich die Umbrüche und alles sieht anders aus…

Ausserdem kann ein User ein persönliches CSS File verwenden und seine Lieblingsschriftart verwenden - dann klappt das ganze wieder nicht.
Du könntest höchstens eine Schriftart wie courier verwenden…

IIIIIIIIIIIIIIIIIII
MMMMMMMMMMMMMMMMMMM

OK, Danke

dann muß ich mir doch was ganz anderes einfallen lassen.

Gruß
Michi

Hi Michi

Ich habe auch etwas rumgebastelt und bin zu diesem, nicht sonderlich schönen aber funktionellen Lösungsansatz gekommen. An Stelle der DIV muß man Textarea nehmen, das man mit css aber auch schön aussehen lassen kann.
Mit dem Ergebnis kannst dann ja wahlweise per Javascript oder PHP die Textfelder füllen.

<?php // die Zeilenumbrüche werden in "<br />" umgewandelt
$string = nl2br($\_POST['textarea1']);
// 
 werden gezählt (1 dazu weil es in der letzten Zeile fehlt)
$zeilen = substr\_count($string, "
")+1;
// Testausgabe
echo "Zeilen".$zeilen."
";
echo "String:".$string;
?\>


 Zähle Zeilen
 \<!--
 // Nur eine Angewohnheit von mir um beim Start gleich evtl. mehrere Funktionen aufzurufen
 function autorun(){
 submitForm();
 }
 function submitForm(){
 // der Value von dem Hidden-Feld wird hier übermittelt.
 var flag = "\<?php echo $\_POST['flag']; ?\>";
 // Wenn nicht "nosubmit" drinsteht wird das Formular automatisch abgesendet
 if(flag!="nosubmit"){
 document.formular1.submit();
 }
 }
 //--\>

Das ist ein Textfeld, das einen Text aus einer Datenbank erhält, welcher automatisch umgebrochen werden soll. Die Zeilen sollen gezählt werden.

CU Fr@nkie

The Truth Is Out There… ;o)