# Letztes Vorkommen im String entfernen



## Dustin84 (8. November 2010)

Nabend Leute,

ich habe einendynamischen String mit Keywords. Er ist begrenzt auf bis zu 180 Zeichen.
So kann es also vorkommen, dass am Ende das letzte Wort abgeschnitten ist.

Beispielstring:
Webdesign,Nethousting,Webmaster,Programmierung,*Suchmasc*

Nun soll alles nach dem letzten Komma abgeschnitten werden (inkl. des Kommas).
Ich habe es mit *strrchr* versucht. Das Ergebnis war, dass alles *vor* dem letzten Komma gelöscht wurde. Ausgabe war also "*,Suchmasc*".

Das ist ja genau das Gegenteil von dem, was ich brauche.

Was wäre die kürzeste und beste Lösung?

Gruß
D.


----------



## harryman (8. November 2010)

Hi,

hiermit kannst du das letzte Vorkommen suchen:
http://www.php.net/manual/de/function.strrpos.php
und dann mit substr weiter bearbeiten.


----------



## Dustin84 (8. November 2010)

Hast du evtl. ein Beispiel, wie die beiden Functions zusammen spielen? Das ist mir nicht ganz klar.


----------



## harryman (8. November 2010)

```
<?PHP
$meinstring = 'xcxcc,1122,32323,dfdf';

$pos = strrpos($meinstring, ",");
if ($pos !== false) { 
	$meinstring = substr($meinstring,0, $pos);
}

echo $meinstring;
?>
```


----------



## Yaslaw (8. November 2010)

Oder über Arrays...

```
//Den String in ein Array wandeln
$words = explode(',', $myString);
//Den letzten Eintrag enfernen
array_pop($words);
//Je nachdem macht es Sinn gleich mitt dem gekürzten Array weiterzuarbeiten. Ansonsten
$myNewString=implode(',', $words);
```

Oder noch besser mt einem regulären AUsdruck

```
$pattern = '/^(?:([^,]+)|(.*),[^,]+)$/is';
$replace = '\1\2';
$myNewString = preg_replace($pattern, $replace, $myString);
```


----------



## Parantatatam (9. November 2010)

Was auch geht, ist diese Möglichkeit:

```
$string = implode(',', explode(',', $origin_string, -1));
```


----------

