hab scheiße gebaut...

naja die Frage ist eher: wieso ist das nicht abgefangen? ;););)

aber posten kann man noch.... da die Felder allerdings zentriert sind muß man eben bis zur Mitte scrollen.... dort findest Du die Eingabefelder und kannst einen weiteren Kommentar abgeben...

Aber mo wird Dir bestimmt für die nächsten drei Wochen den Nachtisch streichen ;)
 
hm, gute frage mit dem abfangen. hat wer ne routine griffbereit, die sowas macht? und wie lang dauert das, wenn eine schleife alle eingegebenen wörter auf länge prüft und die ggf. mit leerzeichen oder was auch immer versieht?
bye,
mo
 
ne, wordwrap is net das richtige. das kürzt einen ganzen string. ich brauch aber nur eine kürzung von teilen eines strings.
beispiel: jemand schreibt einen tollen kommentar und dann kopiert er ein 1000-stelliges passwort rein :D
da sollte einfach das zu lange wort gekillt oder durch [...] ersetzt werden.
bye,
mo
 
dann mach es halt anders....

PHP:
if($strlen($text) > 150){
   echo substr($text,0,150)."[....]";
}else{
  echo $text;
}

btw, der Counter im anderen Forum scheint zu hängen :rolleyes:
 
ich habs mal so gemacht:
PHP:
        $einzelwort = explode(" ",$comment);
        $anzahl_woerter = sizeof($einzelwort);
        for ($q = 0; $q <= $anzahl_woerter; $q++) 
        {
          if (strlen($einzelwort[$q]) > 40) {
            $comment .= substr($einzelwort[$q],0,40)."[....]";
          } else {
            $comment .= $einzelwort[$q]." ";
          }
        }
$comment ist der string aus der DB.
vermutlich ist es zu spät, ich find den fehler nicht. das script soll den ganzen string zerlegen, alle wörter auf die länge prüfen und wenn ein wort zu lang ist, dann soll´s gekürzt werden. ansonsten halt nicht. jetzt spuckt er alles 2x aus.
seltsam.
bye,
mo
 
wenn Du $comment vor der Schleife auf leer setzt, dann sollte es gehen, da Du ja sonst immer mit .= hintendranhängst...
 
und mach aus dem '<=' ein '<', mich wundert dass Du deshalb keinen Fehler bekommen hast, da Du ein Arrayelement ansprichst, welches nicht vorhanden ist.
 
$comment hatte ich schon auf leer gesetzt, ging trotzdem nicht. vom ansatz her ist´s doch richtig. den string in wortteile zerlegen, diese prüfen und wenn nötig kürzen. nur: was stimmt hier nicht?
bye,
mo
 
Das der Text wiederholt wird liegt daran (wie bereits erwähnt), dass an $comment, die einzelnen Wörter neu drangehängt wird. Also, musst Du aufjedenfall vorher (nach explode, vor Schleife) $comment leeren.
Und ausserdem rufst Du in der Schleife ein Element im Array auf, welches nicht vorhanden ist, da das letzte länge-1 ist (Arrays beginnen i.R. bei 0)

Sonst ist alles richtig, und der Ansatz auch (allerdings nicht so effizient).

Wenn's immer noch nicht geht, dann poste mal deinen ausgebesserten Code. Ich denk' dass das dann ein "seh' kein Wald vor lauter Bäumen"-Fehler sein wird.
 
so, hier der code:
PHP:
        $einzelwort = explode(" ",$comment);
        $anzahl_woerter = sizeof($einzelwort);
        for ($q = 0; $q < $anzahl_woerter; $q++) 
        {
          if (strlen($einzelwort[$q]) > 40) {
            $comment .= substr($einzelwort[$q],0,40)."[....]";
          } else {
            $comment .= $einzelwort[$q]." ";
          }
        }
        echo $comment;
        $comment = "";
wie säh denn ein effizienterer code aus?

bye,
mo
 
klar, dass das nicht geht!!!
$comment, bitte nach dem Explode, aber noch vor der Schleife leeren!!!

Ich denke, effizienter wäre es, wenn man nicht explode nutzt, sondern in einer Schleife mit strpos alle Wörter abgeht.
 
Zurück
Oben