Portal > Foren > PHP > PHP-Programmierung > Ansatz gesucht: Text abschneiden, letztes Wort vollständig
Antwort
 
Themen-Optionen Thema durchsuchen
Alt 29.11.2005, 20:14 Nach oben    #1
Ben
Benjamin Klaile
 
Benutzerbild von Ben
 
Registriert seit: 02.12.2004
Ort: Remagen
Beiträge: 4.516
Standard Ansatz gesucht: Text abschneiden, letztes Wort vollständig

Hallo,
ich habe gerade Probleme einen Ansatz für mein Problem zu finden.

Ich habe einen Text, welchen ich so kürzen will, dass er nur noch 200 Zeichen hat, wobei das letzte Wort vollständig sein soll.
Er darf also auch gerne 205 Zeichen haben, z.B. oder aber auch nur 191. Je nach Ansatz.

Man könnte sicherlich den Text anhand der Leerstellen aufsplitten und dann wieder zusammensetzen, wobei ein Counter mitläuft, der die Zeichen zählt, aber irgendwie wirkt mir das sehr .. hmm .. *gääähn* .. laaaaaaaaangsam .
Kann sein, dass ich mich täusche, aber so kommt mir das vor.

Muss irgendwie schneller gehen, oder?
Hat jemand einen guten Ansatz?

Danke für eure Ideen.

Grüße Ben.
Ben ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 29.11.2005, 20:18 Nach oben    #2
Erfahrener Benutzer
 
Benutzerbild von PaterNoster
 
Registriert seit: 18.08.2005
Ort: Dortmund
Beiträge: 166
Standard

Erst mal den Text bei 200 abschneiden, dann nach links gucken, wann das erste Leerzeichen kommt. Wenn die "Schmerzgrenze" erreicht wurde, also ein sehr langes Wort, und das Leerzeichen dann z. B. bei 185 ist, Text bei 210 abschneiden, gleiches Spiel. Mal eben so aus der hohlen Hand...
PaterNoster ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 29.11.2005, 20:22 Nach oben    #3
Ben
Benjamin Klaile
 
Benutzerbild von Ben
 
Registriert seit: 02.12.2004
Ort: Remagen
Beiträge: 4.516
Standard

Hab das jetzt so
PHP-Code:
<?php


    $text 
'Hallo, das hier ist ein Text, den ich nach einer bestimmten Anzahl von Zeichen abschneiden möchte,
             wobei wichtig ist, dass das letzte Wort komplett vorhanden ist .. sonst sieht das so doof aus ;-).'
;
             
             
    function 
cutter($text$length) {
        
        
$tmp substr($text0$length);
        
        
$token explode(' '$tmp);
        
$tmpToken array_pop($token);
        unset(
$tmpToken);
        
        return 
implode(' '$token) . ' ...';    
    } 

    echo 
cutter($text50);

?>
Jemand noch einen Verbesserungsvorschlag.

Grüße Ben.
Ben ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 29.11.2005, 20:34 Nach oben    #4
me pro ok?
 
Benutzerbild von Lars
 
Registriert seit: 07.09.2005
Ort: Pulheim bei Köln
Beiträge: 964
Standard

PHP-Code:
$text substr($text0200);

$text preg_replace('#[^\s]*$#s'''$text);

echo 
$text ' ...'
Das schneidet hinten die letzten Nicht-Whitespaces ab.
__________________
Gedanken aus Draht stricken einen Zaun.
Lars ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 29.11.2005, 20:39 Nach oben    #5
Ben
Benjamin Klaile
 
Benutzerbild von Ben
 
Registriert seit: 02.12.2004
Ort: Remagen
Beiträge: 4.516
Standard

Hm. Sieht nett aus. Muss ich auch mal testen.
Ben ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 29.11.2005, 20:50 Nach oben    #6
Ben
Benjamin Klaile
 
Benutzerbild von Ben
 
Registriert seit: 02.12.2004
Ort: Remagen
Beiträge: 4.516
Standard

Jut.
Gehört hier jetzt eigentlich nicht rein, aber ich haus trotzdem dazu.

Jetzt ist es so, dass der Text bbCodes enthalten kann. Um jetzt Kommentaren nach bbCodes mit IDs und Co. zu entgehen (dafür habe ich jetzt einfach keine Zeit!) möchte ich die bbCodes einfach nur alle "strippen", als entfernen.


Ein Text könnte z.B. so aussehen
Code:
Das hier ist [abbr=zum Beispiel]z.B.[/abbr] ein Text, der einen internen Link und einen externen Link http://www.google.de enthält.
Die bbCodes sind in einem Array enthalten, welches folgendermaßen aussieht:
Code:
array(10) {
  [0]=>
  array(4) {
    ["searchedBBCode"]=>
    string(2) "h2"
    ["replacement"]=>
    string(17) "<h2>{$param}</h2>"
    ["_option"]=>
    string(1) "0"
    ["optionReplacement"]=>
    string(0) ""
  }
  [1]=>
  array(4) {
    ["searchedBBCode"]=>
    string(6) "intern"
    ["replacement"]=>
    string(66) "<a href="{$param}" title="interner Verweis: {$param}">{$param}</a>"
    ["_option"]=>
    string(1) "1"
    ["optionReplacement"]=>
    string(67) "<a href="{$option}" title="interner Verweis: {$param}">{$param}</a>"
  }
Ich bin einfach nicht wirklich fit in regulären Ausdrücken, habe da etwas mit gespielt .. aber ähm .. .. ich bin zu schlecht .

Hat jemand eine Idee, wie ich es schaffe, alle bbCodes so zu entfernen, dass ich im Endeffekt einen Text dort stehen habe, mit dem ich nicht Gefahr laufe, dass da plötzlich mal ein "<a " aufgeht und nicht wieder zu?

Wäre subba .

Grüße Ben.
Ben ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 29.11.2005, 22:43 Nach oben    #7
Erfahrener Benutzer
 
Registriert seit: 18.03.2005
Beiträge: 597
Standard

Zitat:
mit dem ich nicht Gefahr laufe, dass da plötzlich mal ein "<a " aufgeht und nicht wieder zu?
hmmm, wie meinste denn das ?
Habe ich nicht verstanden

Zitat:
alle bbCodes so zu entfernen, dass ich im Endeffekt einen Text dort stehen habe
Also alles rausnehmen was sich innerhalb von eckigen Klammern befindet ?
So nach dem Motto: (\[.+\]) ...
CIX88 ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 29.11.2005, 22:51 Nach oben    #8
Ben
Benjamin Klaile
 
Benutzerbild von Ben
 
Registriert seit: 02.12.2004
Ort: Remagen
Beiträge: 4.516
Standard

Zitat:
Zitat von CIX88
Zitat:
mit dem ich nicht Gefahr laufe, dass da plötzlich mal ein "<a " aufgeht und nicht wieder zu?
hmmm, wie meinste denn das ?
Habe ich nicht verstanden
Nun. Ich splitte ja nach Leerzeichen. Wenn ich jetzt dummerweise das "<a " als letzte Wort habe .. wird alles dahinter zum Link .

Zitat:
Zitat von CIX88
Zitat:
alle bbCodes so zu entfernen, dass ich im Endeffekt einen Text dort stehen habe
Also alles rausnehmen was sich innerhalb von eckigen Klammern befindet ?
So nach dem Motto: (\[.+\]) ...
Joa. Irgendwie schon ...
Ben ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 29.11.2005, 23:09 Nach oben    #9
Erfahrener Benutzer
 
Registriert seit: 18.03.2005
Beiträge: 597
Standard

Zitat:
Nun. Ich splitte ja nach Leerzeichen
Hmmm, warum nicht Zeilenweise ?

Ein Beispieltext würde ich jetzt besser verstehen (... oder mal Kaffee holen)

EDIT:

Was ist jetzt garnicht verstehe, wenn du ein Text mit BBcodes hast, steht ja eigentlich kein <a... drin.
Z.B.: [ url ]http://golem.de/0511/41901.html[ /url ]

Geändert von CIX88 (29.11.2005 um 23:20 Uhr)
CIX88 ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 29.11.2005, 23:50 Nach oben    #10
Ben
Benjamin Klaile
 
Benutzerbild von Ben
 
Registriert seit: 02.12.2004
Ort: Remagen
Beiträge: 4.516
Standard

Zitat:
Zitat von CIX88
Was ist jetzt garnicht verstehe, wenn du ein Text mit BBcodes hast, steht ja eigentlich kein <a... drin.
Z.B.: [ url ]http://golem.de/0511/41901.html[ /url ]
Stimmt .. *gg* .. äh .. da muss ich nochmal nachdenken ..
Ben ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 30.11.2005, 00:03 Nach oben    #11
Erfahrener Benutzer
 
Registriert seit: 18.03.2005
Beiträge: 597
Standard

Oha !

Hab jetzt eben an mir selber gezweifelt

Ansonsten meinste sicher sowas:
http://www.cix88.de/cix_php/demo/cix...20051130000159
CIX88 ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 30.11.2005, 00:12 Nach oben    #12
Ben
Benjamin Klaile
 
Benutzerbild von Ben
 
Registriert seit: 02.12.2004
Ort: Remagen
Beiträge: 4.516
Standard

Yeah. Coole Sache. .
Dankö.

Geändert von Ben (30.05.2007 um 17:34 Uhr) Grund: Link entfernt, da nicht mehr aktuell
Ben ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
PingBacks sind an
RefBacks sind aus

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Bild im Text mit css? code5 HTML, XML und CSS 11 20.12.2005 13:15


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:28 Uhr.


Powered by vBulletin® Version 3.7.4 (Deutsch)
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45