Wie man eine Zahl mit führenden Nullen in PHP richtig formatiert

Ralfh Bryan Perez 30 Januar 2023
  1. Die Verwendung einer Zeichenkette als Ersatz für die Zahl
  2. substr() zum Hinzufügen führender Nullen in PHP
  3. printf()/sprintf() um führende Nullen in PHP hinzuzufügen
  4. str_pad() zum Hinzufügen führender Nullen in PHP
Wie man eine Zahl mit führenden Nullen in PHP richtig formatiert

In PHP können Zahlen oder ganze Zahlen mit führenden Nullen unterschiedliche Werte mit unerwarteten Ergebnissen haben.

Beispiel:

$number = 0987654321; //this is an octal number
$number = 0x987654321 // this is a hexadecimal number
$number = 0b0987654321 // this is a binary number

Um sicherzustellen, dass die Zahl ihre natürliche Bedeutung nicht verliert, gibt es verschiedene Möglichkeiten, wie die Verwendung einer Zeichenkette anstelle einer Zahl oder die Verwendung verschiedener Funktionen wie substr, printf() / sprintf() und str_pad zu versuchen.

Die Verwendung einer Zeichenkette als Ersatz für die Zahl

Der einfachste Ansatz; einfach eine Zeichenkette als Ersatz für die Zahl zu verwenden.

$number = "0987654321";

Wann zu verwenden:

  1. Es gibt keine erforderliche Länge der Ausgabe.
  2. Es gibt keine Ausnahme für die Zahl, daß sie immer eine führende Null benötigt.

substr() zum Hinzufügen führender Nullen in PHP

Diese Methode schneidet die Zahlen von links ab, wenn die Zeichenkettenlänge überschritten wird.

Wenn start negativ ist, beginnt die zurückgegebene Zeichenkette ab dem start-ten Zeichen am Ende der String.

Beispiel:

$number = 98765;
$length = 10;
$string = substr(str_repeat(0, $length).$number, - $length);

//output: 0000098765

Wann zu verwenden:

  1. Wenn es eine feste Länge der Ausgabezeichenkette gibt.
  2. Hinzufügen von Nullen, wenn die Zeichenkette kürzer als die Länge ist.

printf()/sprintf() um führende Nullen in PHP hinzuzufügen

So füllen Sie eine Ausgabe für eine feste Länge auf, wenn die Eingabe kleiner als die Länge ist, und geben die Zeichenkette zurück, wenn die Eingabe größer ist.

Beispiel:

$length = 10;
$char = 0;
$type = 'd';
$format = "%{$char}{$length}{$type}"; // or "$010d";

//print and echo
printf($format, 987654321);

//store to a variable
$newFormat = sprintf($format, 987654321);

// output: 0987654321

In diesem Beispiel wird die feste Länge auf 10 und die Eingabelänge auf 9 gesetzt, so dass bei Verwendung von printf()/sprintf links eine Null hinzugefügt wird.

sprintf() Parameterwerte

Parameter Beschreibung
format (Erforderlich) Die Zeichenkette und wie die Variablen zu formatieren sind.
Mögliche Formatwerte:
%% - Prozentzeichen
%b - Binär
%c - Zeichen mit Bezug auf ASCII
%d - Dezimalzahl (negativ oder positiv)
%e - Wissenschaftliche Kleinschreibweise
%E - Wissenschaftliche Großschreibweise
%u - Dezimalzahl ohne Vorzeichen
%f - Float-Zahl (lokale Einstellungen bekannt)
%F - Float-Zahl (nicht lokale Einstellungen bekannt)
%g - kürzere Version von %e und %f
%G - kürzere Version von %E und %F
%o - Oktal
%s - Zeichenkette
%x - Hexadezimal (Kleinbuchstaben)
%X - Hexadezimal (Großbuchstaben)
arg1 (Erforderlich) Beim ersten %-Zeichen einzufügen
arg2 (fakultativ) Beim zweiten %-Zeichen einzufügen
argg++ (fakultativ) Einzufügen am dritten, vierten usw. %-Zeichen

Anmerkung:

  • Wenn die Länge der Eingabezeichenkette größer oder gleich der Pad-Länge ist, wird nur die Zeichenkette zurückgegeben - es werden keine Zeichen ausgelassen.
  • Auffüllen wird nur hinzugefügt, wenn die Länge der Eingabe kleiner als die Auffüllungslänge ist.

str_pad() zum Hinzufügen führender Nullen in PHP

Mit dieser Methode wird eine Zeichenkette auf eine neue Länge von angegebenen Zeichen aufgefüllt.

Beispiel:

$length = 7;
$string = "12345";
echo str_pad($string,$length,"0", STR_PAD_LEFT);
//output: 0012345

Das obige Beispiel fügt der angegebenen Zeichenkette die “Null” hinzu, bis sie der angegebenen Länge entspricht (die in diesem Fall 7 ist).

str_pad() Parameter-Liste

Parameter Beschreibung
Saite Die aufzufüllende Zeichenkette
length Gibt die neue Länge der Zeichenkette an. **Hinweis: **Wenn der Wert kleiner als die Länge der Zeichenkette ist, geschieht nichts.
pad_zeichenkette Gibt die Zeichenkette an, die zum Auffüllen verwendet werden soll. Der Standardwert ist Whitespace.
pad_type Gibt an, wo die Zeichenkette aufgefüllt werden soll.
Akzeptierte Werte:
STR_PAD_BOTH - Dies füllt beide Seiten der Zeichenkette auf.
STR_PAD_LEFT - Füllt die linke Seite der Zeichenkette auf
STR_PAD_RIGHT - Füllt die rechte Seite der Zeichenkette auf

Verwandter Artikel - PHP Function