EisFuX: preg_replace()

Beitrag lesen

(Hallo|Hi(ho)|Tag) Tobias Otto,

wie kann ich bei einem php bei einer zahl alle "," entfernen und mit "." ersetzen.

Falls number_format() wider allen Erwartens doch nicht helfen konnte (es formatiert AFAIK Gleitkommazahlen neu), dann kannst du es auch mal mit preg_replace() versuchen:

  
$string_alt = DEINE_ZAHL_ODER_TEXT_MIT_ZAHLEN;  
  
$string_neu = preg_replace(  
  '/(\d),(\d)/', // jedes Komma, das zwischen Ziffern steht  
  '.',           // durch einen Punkt ersetzen  
  $string_alt  
);  

Wenn die Ursprungszahl allerdings schon einen oder mehrere Dezimalpunkte enthält, musst du die auf gleiche Weise vorher schon in ein anderes Zeichen umwandeln.

Sollen dabei Kommas durch Punkte und Punkte durch Kommas ausgetauscht werden, ist das ein klein wenig fitzelig. So könnte es funktionieren (es gibt aber auch noch andere Möglichkeiten):

  
$string_neu = preg_replace(  
  '/(\d)([\.,])(\d)/e',                // Komma oder Punkt finden  
  '("$2" == ",") ? "$1.$3" : "$1,$3"', // durch das Gegenstück ersetzen  
  $string_alt  
);  

MffG
EisFuX