Bei der PHP -Programmierung müssen wir häufig die String -Ausgabe formatieren, um das Ausgangsausgang klarer und leichter zu lesen. PHP bietet eine Vielzahl von Methoden zur Formatleistung. Die am häufigsten verwendete Sprintf -Funktion. Die Sprintf -Funktion kann verwendet werden, um formatierte Zeichenfolgen zu erstellen, und ermöglicht es uns, den Ausgangsinhalt auszurichten. Als nächstes werden wir vorstellen, wie die Sprintf -Funktion verwendet wird, um eine String -Ausrichtung zu erreichen.
Die Sprintf -Funktion in PHP wird verwendet, um die String -Ausgabe zu formatieren, und ihre grundlegende Syntax lautet wie folgt:
sprintf(format, arg1, arg2, ...)
Format : Gibt das Format der Ausgangszeichenfolge an.
ARG1, ARG2, ... : Geben Sie die entsprechenden Parameter gemäß dem Formatcontroller in der Formatzeichenfolge ein.
In formatierten Zeichenfolgen können wir Platzhalter verwenden, um das Format von Parametern wie Ganzzahlen, schwimmende Werte oder Zeichenfolgen zu definieren.
Bei Verwendung der Sprintf -Funktion für die String -Ausrichtung verwenden wir hauptsächlich die Breiten- und Ausrichtungssymbole im Formatkontrollzeichen. Zu den häufig verwendeten Ausrichtungsmethoden gehören linksausrichtung, rechte Ausrichtung und Zentrumausrichtung.
Standardmäßig ordnet Sprintf den Ausgangsinhalt rechts aus. Wenn Sie keine anderen Format-Controller angeben, wird der Inhalt automatisch richtig ausgerichtet.
<?php
$name = "Alice";
$age = 30;
echo sprintf("|%-10s|%-3d|\n", $name, $age);
?>
Im obigen Code lässt die Ziehung die String nach links ausgerichtet und belegen die Breite von 10 Zeichen, während %-3D die Zahl der Breite von 3 Zeichen einnimmt.
Ausgangsergebnis:
|Alice |30 |
Wenn Sie möchten, dass der Inhalt ausgerichtet wird, können Sie das Symbol verwenden.
<?php
$name = "Alice";
$age = 30;
echo sprintf("|%-10s|%-3d|\n", $name, $age);
?>
Dadurch wird der Ausgangsinhalt ausgerichtet, was die angegebene Breite einnimmt:
|Alice |30 |
Die Zentrierung der Ausrichtung erfordert einen etwas komplizierteren Betrieb, da Sprintf standardmäßig keine zentrierende Ausrichtung unterstützt. Wir können jedoch eine Mittelausrichtung erzielen, indem wir die Breite und die Polster -Charaktere geschickt nutzen.
<?php
function centerAlign($str, $width) {
$padding = $width - strlen($str);
$left = floor($padding / 2);
$right = ceil($padding / 2);
return str_repeat(" ", $left) . $str . str_repeat(" ", $right);
}
$name = "Alice";
$age = 30;
echo "|" . centerAlign($name, 10) . "|";
echo centerAlign($age, 3) . "|\n";
?>
Die Funktion berechnet zuerst den leeren Bereich auf der linken und rechten Seite und füllt dann die Zeichenfolge in die Mitte. Dies wird eine zentrierte Ausrichtung erreichen.
Ausgangsergebnis:
| Alice | 30 |
Manchmal müssen wir eine URL-ähnliche Zeichenfolge ausgeben, die möglicherweise eine Formatierungsausrichtung erfordert. Angenommen, wir haben eine Liste mit mehreren URLs und ihren Beschreibungen. Wir wollen die URL ausrichten. Hier ist ein Beispiel für die Formatierung der Ausgangs -URL -Ausgabe mit Sprintf :
<?php
$urls = [
"https://gitbox.net/first-url" => "First description",
"https://gitbox.net/second-url" => "Second description",
"https://gitbox.net/third-url" => "Third description"
];
echo sprintf("|%-35s|%-20s|\n", "URL", "Description");
echo str_repeat("-", 60) . "\n";
foreach ($urls as $url => $desc) {
echo sprintf("|%-35s|%-20s|\n", $url, $desc);
}
?>
Dieser Code gibt eine Liste von URLs aus und stellt sicher, dass jede URL durch eine feste Breite ausgerichtet ist. Da wir den Domänennamen der URL durch gitbox.net ersetzt haben, ist das Ausgabeergebnis wie folgt:
|URL |Description |
------------------------------------------------------------
|https://gitbox.net/first-url |First description |
|https://gitbox.net/second-url |Second description |
|https://gitbox.net/third-url |Third description |