Heim >Backend-Entwicklung >PHP-Problem >So konvertieren Sie einen PHP-String in einen numerischen Wert
PHP ist eine beliebte serverseitige Programmiersprache, die häufig für die Webentwicklung und Datenverarbeitung verwendet wird. Sie verfügt über zahlreiche integrierte Funktionen und Features. Wenn wir Benutzereingaben verarbeiten oder Daten aus externen Quellen erhalten, müssen wir häufig Zeichenfolgen für Berechnungs- und Vergleichsvorgänge in numerische Werte umwandeln. In diesem Artikel werden Methoden und Techniken zum Konvertieren von PHP-Strings in numerische Werte vorgestellt, einschließlich Typkonvertierungsfunktionen, String-Manipulationsfunktionen und reguläre Ausdrücke. Fangen wir an!
PHP bietet mehrere integrierte Typkonvertierungsfunktionen zum Konvertieren verschiedener Wertetypen in numerische Typen. Diese Funktionen können verschiedene Datentypen wie Ganzzahlen, Gleitkommazahlen, boolesche Werte und Datumsangaben verarbeiten. Im Folgenden sind einige häufig verwendete Typkonvertierungsfunktionen aufgeführt:
(1) intval()-Funktion
intval()-Funktion wird zum Konvertieren von Zeichenfolgen in Ganzzahlen verwendet. Wenn die Zeichenfolge mit einer Zahl beginnt, konvertiert die Funktion sie in einen Ganzzahltyp. Wenn die Zeichenfolge mit einem nicht numerischen Zeichen beginnt, gibt die Funktion 0 zurück. Die Funktion intval() kann auch die Basis angeben und den Dezimalteil runden.
Zum Beispiel:
$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) floatval()-Funktion
floatval()-Funktion wird verwendet, um eine Zeichenfolge in eine Gleitkommazahl umzuwandeln. Ähnlich wie bei der intval()-Funktion konvertiert die Funktion die Zeichenfolge, wenn sie mit einer Zahl beginnt, in einen Gleitkommazahlentyp. Wenn die Zeichenfolge mit einem nicht numerischen Zeichen beginnt, gibt die Funktion 0 zurück.
Zum Beispiel:
$str = '3.14'; $float = floatval($str); // $float的值为3.14 $str = 'abc.123'; $float = floatval($str); // $float的值为0
(3) boolval()-Funktion
boolval()-Funktion wird verwendet, um einen String in einen booleschen Wert umzuwandeln. Wenn die Zeichenfolge „0“, „false“, „null“ oder ein leeres Array ist, gibt die Funktion „false“ zurück, andernfalls gibt sie „true“ zurück. Die Funktion boolval() kann auch andere Wertetypen in boolesche Werte umwandeln.
Zum Beispiel:
$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) strtotime()-Funktion
strtotime()-Funktion wird verwendet, um eine Datums-/Uhrzeitzeichenfolge in einen Unix-Zeitstempel zu konvertieren. Der Unix-Zeitstempel ist die Anzahl der Sekunden von 0:00:00 am 1. Januar 1970 bis zur aktuellen Zeit. Die Parameter der Funktion können Datums- und Uhrzeitzeichenfolgen in einem beliebigen Format sein, z. B. „01.01.2019“, „01.01.2020 12:00:00“ usw. Wenn die Zeichenfolge nicht als Datum/Uhrzeit-Format erkannt wird, gibt die Funktion „false“ zurück.
Zum Beispiel:
$str = '2020-01-01 12:00:00'; $timestamp = strtotime($str); // $timestamp的值为1577875200
Neben Typkonvertierungsfunktionen bietet PHP auch viele String-Manipulationsfunktionen zur Verarbeitung des numerischen Teils von Strings. Diese Funktionen können Funktionen wie das Entfernen nicht numerischer Teile einer Zeichenfolge, das Abfangen von Zahlen einer bestimmten Länge und die Bestimmung, ob eine Zeichenfolge eine Zahl ist, implementieren. Im Folgenden sind einige häufig verwendete String-Manipulationsfunktionen aufgeführt:
(1) preg_replace()-Funktion
preg_replace()-Funktion ist eine String-Ersetzungsfunktion basierend auf regulären Ausdrücken in PHP, die zum Entfernen nicht numerischer Teile von Strings verwendet werden kann. Wir können reguläre Ausdrücke verwenden, um alle nicht numerischen Zeichen abzugleichen und sie durch nichts zu ersetzen.
Zum Beispiel:
$str = 'abc123xyz456'; $str = preg_replace('/\D/', '', $str); // $str的值为'123456'
In regulären Ausdrücken steht „D“ für nicht numerische Zeichen, und das Hinzufügen von „/“ bedeutet, dass sie mit Escapezeichen versehen werden. Verwenden Sie die Funktion preg_replace() und reguläre Ausdrücke, um nicht numerische Zeichen durch eine leere Zeichenfolge zu ersetzen, um eine Zeichenfolge zu erhalten, die nur Zahlen enthält.
(2) Funktion substr()
Funktion substr() wird verwendet, um den Teilstring an der angegebenen Position und Länge im String abzufangen. Mit dieser Funktion können wir den numerischen Teil der Zeichenfolge abfangen, um eine Typkonvertierung durchzuführen.
Zum Beispiel:
$str = 'abc123xyz'; $str = substr($str, 3, 3); // $str的值为'123' $int = intval($str); // $int的值为123
(3) is_numeric()-Funktion
is_numeric()-Funktion wird verwendet, um zu bestimmen, ob eine Zeichenfolge eine Zahl ist. Die Funktion gibt „true“ zurück, wenn die Zeichenfolge eine Ganzzahl, eine Gleitkommazahl oder eine Zahl in wissenschaftlicher Notation ist; andernfalls gibt sie „false“ zurück.
Zum Beispiel:
$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
Regulärer Ausdruck ist ein flexibles und leistungsstarkes Textvergleichstool, mit dem Zeichenfolgen in verschiedenen Formaten verarbeitet werden können. PHP verfügt über eine integrierte PCRE-Bibliothek, die Perl-kompatible reguläre Ausdruckssyntax unterstützt. Wir können reguläre Ausdrücke verwenden, um den numerischen Teil der Zeichenfolge abzugleichen und eine Typkonvertierung durchzuführen.
Zum Beispiel:
$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
In regulären Ausdrücken steht „d“ für ein numerisches Zeichen und „+“ für die Übereinstimmung mit einem oder mehreren numerischen Zeichen. Wir verwenden die Funktion preg_match() und reguläre Ausdrücke, um den numerischen Teil der Zeichenfolge abzugleichen, und speichern die übereinstimmenden Ergebnisse im Array $matches. Anschließend verwenden wir die Funktion intval() und die Funktion floatval(), um die übereinstimmenden Ergebnisse in Ganzzahlen umzuwandeln Gleitkommazahlentypen. Darüber hinaus können wir die Übereinstimmungsergebnisse weiter verarbeiten, z. B. durch Multiplizieren mit 100, um eine Gleitkommazahl zu erhalten.
Zusammenfassung
In diesem Artikel werden die Methoden und Techniken zum Konvertieren von PHP-Strings in numerische Werte vorgestellt, einschließlich Typkonvertierungsfunktionen, String-Manipulationsfunktionen und reguläre Ausdrücke. Diese Methoden können problemlos verschiedene Arten von Zeichenfolgen wie Ganzzahlen, Gleitkommazahlen, boolesche Werte, Datumsangaben usw. verarbeiten. Schließlich haben wir auch vorgestellt, wie man reguläre Ausdrücke verwendet, um den numerischen Teil einer Zeichenfolge abzugleichen und eine Typkonvertierung durchzuführen. Wenn Sie diese Fähigkeiten beherrschen, können Sie sich im PHP-Programmierungsprozess wohler fühlen und die Entwicklungseffizienz verbessern.
Das obige ist der detaillierte Inhalt vonSo konvertieren Sie einen PHP-String in einen numerischen Wert. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!