Maison > Article > développement back-end > Comment analyser des chaînes de devises en PHP avec plusieurs paramètres régionaux ?
Analyse des chaînes de devises en PHP
Lors de l'analyse des chaînes de devises en PHP, il peut être difficile de gérer différents séparateurs décimaux en fonction des paramètres régionaux actuels. . Bien que l'utilisation de str_replace() pour convertir des virgules en points puisse fonctionner dans certains cas, elle repose sur l'hypothèse que le séparateur décimal est toujours un point.
Une solution plus robuste
Pour remédier à cette limitation et répondre à plusieurs paramètres régionaux, une solution plus complexe mais polyvalente consiste à utiliser des expressions régulières (regex). Voici comment procéder :
public function getAmount($money) { $cleanString = preg_replace('/([^0-9\.,])/i', '', $money); $onlyNumbersString = preg_replace('/([^0-9])/i', '', $money); $separatorsCountToBeErased = strlen($cleanString) - strlen($onlyNumbersString) - 1; $stringWithCommaOrDot = preg_replace('/([,\.])/', '', $cleanString, $separatorsCountToBeErased); $removedThousandSeparator = preg_replace('/(\.|,)(?=[0-9]{3,}$)/', '', $stringWithCommaOrDot); return (float) str_replace(',', '.', $removedThousandSeparator); }
Explication
Mises en garde
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!