Maison >développement back-end >Problème PHP >Comment convertir une chaîne php en valeur numérique
PHP est un langage de programmation côté serveur populaire largement utilisé pour le développement Web et le traitement de données. Il est riche en fonctions et fonctionnalités intégrées. Lorsque nous traitons les entrées de l'utilisateur ou obtenons des données provenant de sources externes, nous devons souvent convertir des chaînes en valeurs numériques pour les opérations de calcul et de comparaison. Cet article présentera les méthodes et techniques de conversion de chaînes PHP en valeurs numériques, y compris les fonctions de conversion de type, les fonctions de manipulation de chaînes et les expressions régulières. Commençons !
PHP fournit plusieurs fonctions de conversion de type intégrées pour convertir différents types de valeurs en types numériques. Ces fonctions peuvent gérer différents types de données tels que des entiers, des nombres à virgule flottante, des valeurs booléennes et des dates/heures. Voici quelques fonctions de conversion de type couramment utilisées :
(1) fonction intval()
la fonction intval() est utilisée pour convertir des chaînes en entiers. Si la chaîne commence par un nombre, la fonction la convertit en un type entier ; si la chaîne commence par un caractère non numérique, la fonction renvoie 0. La fonction intval() peut également spécifier la base et arrondir la partie décimale.
Par exemple :
$str = '123'; $int = intval($str); // $int的值为123 $str = 'abc123'; $int = intval($str); // $int的值为0 $str = '123.45'; $int = intval($str); // $int的值为123 $str = '0x1a'; $int = intval($str, 16); // $int的值为26
(2) fonction floatval()
la fonction floatval() est utilisée pour convertir une chaîne en nombre à virgule flottante. Semblable à la fonction intval(), si la chaîne commence par un nombre, la fonction la convertira en un type de nombre à virgule flottante ; si la chaîne commence par un caractère non numérique, la fonction renvoie 0 ;
Par exemple :
$str = '3.14'; $float = floatval($str); // $float的值为3.14 $str = 'abc.123'; $float = floatval($str); // $float的值为0
(3) la fonction boolval()
la fonctionboolval() est utilisée pour convertir une chaîne en valeur booléenne. Si la chaîne est '0', '', 'false', 'null' ou un tableau vide, la fonction renvoie false ; sinon elle renvoie true ; La fonction boolval() peut également convertir d'autres types de valeurs en valeurs booléennes.
Par exemple :
$str1 = '0'; $str2 = 'false'; $str3 = 'null'; $bool1 = boolval($str1); // $bool1的值为false $bool2 = boolval($str2); // $bool2的值为false $bool3 = boolval($str3); // $bool3的值为false $str4 = 'abc'; $bool4 = boolval($str4); // $bool4的值为true $int = 123; $bool5 = boolval($int); // $bool5的值为true
(4) fonction strtotime()
la fonction strtotime() est utilisée pour convertir la chaîne date/heure en horodatage Unix. L'horodatage Unix est le nombre de secondes entre 0:00:00 le 1er janvier 1970 et l'heure actuelle. Les paramètres de la fonction peuvent être des chaînes de date et d'heure dans n'importe quel format, tels que « 2019-01-01 », « 2020-01-01 12:00:00 », etc. Si la chaîne n'est pas reconnue comme format datetime, la fonction renvoie false.
Par exemple :
$str = '2020-01-01 12:00:00'; $timestamp = strtotime($str); // $timestamp的值为1577875200
En plus des fonctions de conversion de type, PHP fournit également de nombreuses fonctions de manipulation de chaînes pour traiter la partie numérique des chaînes. Ces fonctions peuvent implémenter des fonctions telles que la suppression des parties non numériques d'une chaîne, l'interception de nombres d'une longueur spécifiée et la détermination si une chaîne est un nombre. Voici quelques fonctions de manipulation de chaînes couramment utilisées :
(1) fonction preg_replace()
la fonction preg_replace() est une fonction de remplacement de chaîne basée sur des expressions régulières en PHP, qui peut être utilisée pour supprimer des parties non numériques de chaînes. Nous pouvons utiliser des expressions régulières pour faire correspondre tous les caractères non numériques et les remplacer par rien.
Par exemple :
$str = 'abc123xyz456'; $str = preg_replace('/\D/', '', $str); // $str的值为'123456'
Dans les expressions régulières, « D » représente des caractères non numériques, et ajouter « / » signifie les échapper. Utilisez la fonction preg_replace() et les expressions régulières pour remplacer les caractères non numériques par une chaîne vide afin d'obtenir une chaîne contenant uniquement des nombres.
(2) fonction substr()
la fonction substr() est utilisée pour intercepter la sous-chaîne à la position et à la longueur spécifiées dans la chaîne. Nous pouvons utiliser cette fonction pour intercepter la partie numérique de la chaîne afin d'effectuer une conversion de type.
Par exemple :
$str = 'abc123xyz'; $str = substr($str, 3, 3); // $str的值为'123' $int = intval($str); // $int的值为123
(3) la fonction is_numeric()
la fonction is_numeric() est utilisée pour déterminer si une chaîne est un nombre. La fonction renvoie vrai si la chaîne est un entier, un nombre à virgule flottante ou un nombre en notation scientifique ; sinon, elle renvoie faux ;
Par exemple :
$str1 = '123'; $str2 = '3.14'; $str3 = '1e10'; $str4 = 'abc'; $bool1 = is_numeric($str1); // $bool1的值为true $bool2 = is_numeric($str2); // $bool2的值为true $bool3 = is_numeric($str3); // $bool3的值为true $bool4 = is_numeric($str4); // $bool4的值为false
L'expression régulière est un outil de correspondance de texte flexible et puissant qui peut être utilisé pour traiter des chaînes dans différents formats. PHP dispose d'une bibliothèque PCRE intégrée qui prend en charge la syntaxe des expressions régulières compatible Perl. Nous pouvons utiliser des expressions régulières pour faire correspondre la partie numérique de la chaîne et effectuer une conversion de type.
Par exemple :
$str1 = 'abc123xyz'; $str2 = '3.14E2'; $pattern = '/\d+/'; preg_match($pattern, $str1, $matches); // $matches的值为array('123') preg_match($pattern, $str2, $matches); // $matches的值为array('314') $int1 = intval($matches[0]); // $int1的值为123 $float1 = floatval($matches[0]); // $float1的值为123.0 $float2 = floatval($matches[0]) * 100; // $float2的值为12300.0
Dans les expressions régulières, « d » représente un caractère numérique et « + » représente la correspondance d'un ou plusieurs caractères numériques. Nous utilisons la fonction preg_match() et les expressions régulières pour faire correspondre la partie numérique de la chaîne, et stockons les résultats correspondants dans le tableau $matches ; puis utilisons la fonction intval() et la fonction floatval() pour convertir les résultats correspondants en nombre entier et types de nombres à virgule flottante. De plus, nous pouvons traiter davantage les résultats de la correspondance, par exemple en multipliant par 100 pour obtenir un nombre à virgule flottante.
Résumé
Cet article présente les méthodes et techniques de conversion de chaînes PHP en valeurs numériques, y compris les fonctions de conversion de type, les fonctions de manipulation de chaînes et les expressions régulières. Ces méthodes peuvent facilement gérer différents types de chaînes telles que des entiers, des flottants, des booléens, des dates-heures, etc. Enfin, nous avons également présenté comment utiliser des expressions régulières pour faire correspondre la partie numérique d'une chaîne et effectuer une conversion de type. La maîtrise de ces compétences peut vous rendre plus à l'aise dans le processus de programmation PHP et améliorer l'efficacité du développement.
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!