Wenn strlen($string) > 3500 $string auf $laenge kürzen und ... anhängen

SuperUser

Gesperrt
Hi!

Der Titel sagt eigentlich schon alles. Trotzdem hier nochmal die ausführliche Version:
[blablabla]
Ich versuche einen String $string auf eine Länge von 3500 Zeichen zu kürzen. Ok - nicht sehr schwer - ABER:

§1 Es sollte nur nach, nicht im Wort gekürzt werden:
$string = "That's just a test regarding my question";

$string -> sollte NICHT werden zu: That's just a test reg
SONDERN: That's just a test

§2 Wenn $string länger ist als 3500 Zeichen (und nur dann!) sollte nach diesen 3500 Zeichen der String abgeschnitten werden und "..." angehangen werden.
$string = "Any text with less than 3500 letters";

$string -> sollte NICHT werden zu: This text is not as long as 3500 letters (and gets "..." though) ...
SONDERN: This text is not as long as 3500 letters (and doesn't get "..." )
[/blablabla]

Danke für jede Hilfe :).

Moritz
 
php.net:

$string = wordwrap( $string, 3500 );

edit: hopla, verlesen, willst ja nicht nur zeilenumbrüche

egal schreib noch nen

$string = substr( $string, 0 , strpos( $string , "\n" )) ."...";

drunter, dann hauts hin

habe fertig ;-)
 
Zuletzt bearbeitet:
Wie du beim Testen feststellen wirst, fügt dies keine ... an, entfernt nicht den hinteren Teil und ist allgemein unbrauchbar* :).

PHP:
//PHP

if(strlen($value) > 4500)
 {
 	$value = str_cut($value, 4500);
 	$value = $value . $ending;
 }

function str_cut ($string, $chars) {
  $j = 0;
  while (!$shortstring) {
    if ( ($chars + $j) >= strlen ($string) ) {
      $shortstring = $string;
    } else {
      $strrpos = strrpos (substr ($string, 0, $chars + $j), " ");
      if ($strrpos)
        $shortstring = substr ($string, 0, $strrpos);
    }
    $j++;
  }
  return $shortstring;
}

//PHP

*) Stimmt zwar nicht, ist aber trotzdem wirklich nicht so schön wie eine eigene Funktion :)

//edit
Nach deinem Edit sieht das natürlich schon anders aus. Trotzdem ist das hier beim Testen etwas schneller :) ;) ;-)
 
*gg* naja, man kann nicht unfehlbar sein *gg* ich hab wie gesagt auch falsch gelesen. ich habe auch keine ahnung, wie schnell meine idee ist, ich habe auch einfach nur so fix ne möglichkeit hingekritzelt ohne rücksicht auf verluste ;-)
 
Es gibt da ja Leute, die sagen: "Ein Script ist immer dann richtig, wenn es das tut, was es tun soll."

Ich bin mit dem immer zwar nicht ganz einverstanden, aber es ist wohl was Wahres dran ... :)
 
Zurück