# leerzeichen suchen - substr



## Webgau (31. Januar 2008)

Moin,

momentan lasse ich mein Text der ausgeben werden soll an 255 stelle abkürzen via substr. Ich möchte allerdings erreichen (weils besser is), dass erst ab der 255 stelle nach dem nächsten leerzeichen abgekürzt wird.

Hab hierzu schon gegooglt allerdings nichts gefunden, kann mir jemand helfen?

Grüße Mirko


----------



## Gawayn (31. Januar 2008)

Such doch einfach ab der gewünschten Stelle nach dem ersten Leerzeichen und trenn dann den String? Wo ist das Prob?


----------



## Webgau (31. Januar 2008)

weis net wie, bin in der beziehung noch nen kleiner no_ob :suspekt:


----------



## Gumbo (31. Januar 2008)

Der strpos()-Funktion kann als dritter Parameter ein Versatz mitgegeben werden, ab dem die Position des ersten Vorkommen der angegebenen Zeichenkette zurückgegeben werden soll. Den Rest solltest du selbst hinbekommen.


----------



## Radhad (31. Januar 2008)

Ich würde mit der wordwrap()-Funktion arbeiten.


----------



## Webgau (31. Januar 2008)

Super hat geklappt, stehe allerdings gleich vor dem nächsten Problem, sollte der text (sie code) kürzer 200 sein kommt folgende fehlermeldung:



> Warning: strpos(): Offset not contained in string. in /srv/www/***/html/***/***.php on line 22



ich habe versucht eine if anweisung zu definieren, hm... hat aber nicht geklappt


```
$bericht = "$einsatz->bericht";
$ausgab = strpos("$bericht", ' ', 200); // leerzeichen suchen ab dem 200sten Zeichen
$ausgabe = substr("$bericht", 0, $ausgab); // alles zeigen bis ausgabe 200sten leerzeichen
```

kann mir jemand zu dieser Problematik weiterhelfen 

dankö


----------



## kuddeldaddeldu (31. Januar 2008)

Hi,

frag halt mit strlen() die Länge des Textes ab und kürze nur, wenn auch gekürzt werden muss. 

LG


----------



## Webgau (31. Januar 2008)

supi danke  ^^


----------



## Gumbo (31. Januar 2008)

Du brauchst übrigens nicht so viele temporäre Variablen sondern kannst direkt mit den Rückgabewerten arbeiten:
	
	
	



```
$ausgabe = $einsatz->bericht;
if( strlen($ausgabe) > 200 ) {
	$ausgabe = substr($ausgabe, 0, strpos($ausgabe, ' ', 200));
}
```
Du könntest hier auch direkt den $einsatz->bericht-Variablenwert verändern ohne ihn zuerst in $ausgabe zu kopieren.


----------

