Texte abkürzen mit PHP

Dieses Thema Texte abkürzen mit PHP im Forum "Webentwicklung, Hosting & Programmierung" wurde erstellt von noah1, 15. März 2005.

Thema: Texte abkürzen mit PHP Hallo, ich stehe wieder vor einem Problem... Das unten stehende Script sol dazu dienen auf der Startseite in einer...

  1. Hallo, ich stehe wieder vor einem Problem...
    Das unten stehende Script sol dazu dienen auf der Startseite in einer Tabellenzelle den letzten Eintrag der Tabelle, quasi als Vorschau abzubilden.
    Da die Tabellenzelle aber nur begrenzt Platz bietet möchte ich das gerne so darstellen daß zum Einen in der ersten Zeile,

    Code:
    echo<b>Letzter Einsatz:  </b>;
    					echo<b>$datum $schada</b><br><hr>;
    der Text nach einer bestimmten Anzahl Buchstaben abgekürzt wird (...) und in der zweiten Zeile

    Code:
    echo$einsatz;	
    dann der Text ebenfalls abgekürzt wird und ein Link angehängt wird (...weiter).
    Ist das umständlich zu schreiben oder läßt sich das recht einfach realisieren?
    Wenn ja, wie?
    Schonmal danke...


    Code:
    	include(save/dbconnect.inc.php);
    		$sql = mysql_query(SELECT * FROM einsaetze order by datum DESC LIMIT 1);
    			if (empty($sql)){
    				 echo<table class=\einsaetze\>;
    					 echo<tr>;
    				 echo<td class=\schada\ colspan=\2\>Kein Eintrag vorhanden !</td>;
    				 echo</tr>;
    				 echo</table>;				
    				}
    			else{
    			while ($ds = mysql_fetch_object($sql)){
    					$id = $ds -> id;
    					$amidatum = $ds -> datum;
    					$dat=split(-,$amidatum);
    					$datum=$dat[2]...$dat[1]...$dat[0];
    					$schada = $ds -> schada ;
    					$einsatz = $ds -> einsatz;
    					echo<b>Letzter Einsatz:  </b>;
    					echo<b>$datum $schada</b><br><hr>;
    					echo$einsatz;	
    					}
    					}
    
     
  2. Hier nimmst du am besten substr

    http://de.php.net/substr

    Dein Beispiel:

    Zeile 1 (z.B. die ersten 20 Zeichen)

    Code:
    <?php
    ...
    echo<b>Letzter Einsatz:  </b>;
    echo<b>$datum . substr($schada, 0, 20) .</b><br><hr>;
    ...
    ?>
    
    Zeile 2 (z.B. die ersten 50 Zeichen)

    Code:
    <?php
    ...
    echo substr($einsatz, 0, 50) . <a href='detail_seite.php?datensatz=. $id.>Mehr Info</a>';
    ...
    ?>
    
    Auf der Detailseite kannst du dann die übergebene ID direkt aus der DB abfragen. ;)

    gruss conny

    edit: fast den Link vergessen :'(
     
  3. Danke schonmal, das funktioniert.
    Aber wie kann ich die Buchstaben zählen, daß am Ende, falls es z.B. mehr als 40 sind Punkte angehängt werden?
    Falls der Text durch substr nicht gekürzt wird, weil er nicht länger als das Feld ist brauche ich die Punkte ja nicht, deshalb würde ich es gerne automatisch machen.
     
  4. http://de3.php.net/strlen

    Code:
    <?php
    ...
    // Ist der String $einsatz länger als 40 Zeichen, nehme die erstem 36 Zeichen
    // und hänge hinten einen Space und 3 Punkte an.
    // wenn nicht belasse $einsatz so wie er ist.
    $text = (strlen($einsatz) > 40) ? substr($einsatz, 0, 36).  ... : $einsatz;
    
    echo $text . <a href='detail_seite.php?datensatz=. $id.>Mehr Info</a>';
    ...
    ?>
    
    gruss conny

    edit: 36 weil du mit Space und 3 Punkten wieder auf 40 kommst ;) ;)
     
  5. Ich glaube ich hab es jetzt, zwar nicht ganz so wie Du es geschrieben hättest aber das Ergebnis stimmt...


    [​IMG]
     
  6. Hauptsache es klappt ;) ;)

    Viele Wege führen nach Rom, warum sollte der eine Richtig sein und der andere Falsch ???

    OK, der eine ist evtl. ein paar km länger als der andere, aber das ist nicht Kriegsentscheident ;)
     
  7. Wobei es nicht schaden kann den Code kurz zu halten.
    Allerdings ist es für mich übersichtlicher, wenn die Befehle einzeln dastehen und nicht zu stark abgekürzt werden.

    Jetzt kommt gerade das nächste Problem auf mich zu: Das Admin-Menü.
    Links im Menü befindet sich ein Login für den Admin.
    Wenn man dort Benutzername und Passwort eingegeben hat werden die per-> POST' an ein Script übergeben und es kommt kommt dort anstatt des Logins ein weiteres Menü mit Admin-Optionen.(Sofern die Daten richtig waren, wenn nicht passiert gar nichts...)
    Damit nicht jeder an das Admin-Menü bzw. die Admin-Optionen kommt wollte ich das per Cookie steuern - wenn die richtigen Daten eingegeben wurden wird ein Cookie erstellt, aber auch nur dann.
    Und wenn das Cookie vorhanden ist wird das Admin Menü angezeigt. Funktioniert auch.
    Weiter soll bei jedem Aufruf einer für den Admin gedachten Seite geprüft werden ob das Cookie da ist, wenn nicht dann soll automatisch die Startseite aufgerufen werden.
    Aber wenn ich den Link für ein Admin-Formular direkt eingebe dann kommt auch die Seite, ob das Cookie nun da ist oder nicht...
    Jetzt versuche ich das gerade mit->session() zu machen...
    Wenn ich nicht weiter komme hört Ihr von mir...
     
Die Seite wird geladen...

Texte abkürzen mit PHP - Ähnliche Themen

Forum Datum
Excel VBA Makro zum suchen eines Textes und anschließend einen Breich zu kopieren Microsoft Office Suite 22. Jan. 2015
Texteditor - vorgegebener Dateiname ändern Windows XP Forum 23. Nov. 2014
Texterkennung OCR für Chinesisch Software: Empfehlungen, Gesuche & Problemlösungen 8. Aug. 2014
Fehlende Texte in Displayeinstellung - WIN7-64 Home Windows XP Forum 3. Apr. 2011
Kontexteintrag Bereitstellen bei ISO-Dateien verschwunden Windows 8 Forum 21. Mai 2013