Bestimmte Zeichen mit PHP aus einem String entfernen

So können Sie mit PHP ungewünschte Zeichen aus Zeichenketten entfernen.

Wenn man die Qualität der darzustellenden Daten nicht selber unter Kontrolle hat, kann es schonmal vorkommen, dass man nachträglich noch “Hand anlegen” muss. Ich habe mir eine kleine Funktion geschrieben, die einige unschöne Zeichen entfernt.


function removeUglyChars($phrase) {

  // characters to remove
  $remove = array('*', '+', '!',  ',', '#', '@', '♦', '►', '◄', '•');

  // remove to ugly chars
  $phrase = str_replace($remove, " ", $phrase);

  // remove all double white-spaces
  while (strpos($phrase, "  ") !== false) $phrase = str_replace("  ", " ", $phrase);

  return trim($phrase);

}

Im Array $remove werden dazu alle “hässlichen” Zeichen definiert, die entfernt werden sollen. Mit str_replace werden diese durch ein Leerzeichen ersetzt. Anschließend werden mit Hilfe der While-Schleife alle doppelten Leerzeichen entfernt und das Ergebnis ohne Leerzeichen am Anfang und Ende zurückgegeben.

Sehr wirkungsvoll das Ganze, dann so sehen die eBay-Suchergebnisse bei Handy Preis nicht mehr ganz so schlimm aus – zu sehen z.B. beim Samsung Galaxy i9000.


0 0 0


Diskussion

avatar placeholder
28. Mrz 2011 von B. Müller

Für die While Schleife ist preg_replace eleganter und bestimmt auch schneller.

preg_replace(‘/ss+/’, ‘ ‘,$str);

Damit werden alle leerzeichen die über eins hinausgehen gegen eins ersetzt.

MfG

Mitdiskutieren

*