Bei der täglichen PHP -Programmierung müssen wir häufig Strings oder Zahlen in einem bestimmten Format ausgeben. Zu diesem Zeitpunkt ist die Sprintf () -Funktion Ihr guter Helfer. Es macht die Ausgabe nicht nur steuerbarer, sondern auch den Code ordentlicher und lesbarer. In diesem Artikel werden Sie systematisch die Verwendungsmethoden und -techniken von Sprintf () beherrschen.
Sprintf () ist eine integrierte Funktion in PHP, die formatierte Zeichenfolgen als Ergebnisse zurückgibt ( keine direkte Ausgabe ). Dies ist ähnlich wie printf () , aber printf () ist die direkte Ausgabe, während Sprintf () das Ergebnis ist, das Sie nach der Rückgabe frei verarbeiten können.
Der Funktionsprototyp lautet wie folgt:
string sprintf(string $format, mixed ...$values)
$ Format : Formatvorlage Zeichenfolge.
$ Werte : Ein oder mehrere Werte, die in der Formatvorlage eingefügt werden müssen.
$name = 'Xiao Ming';
$city = 'Peking';
$message = sprintf("Hallo,Ich bin%s,Ich komme aus%s。", $name, $city);
echo $message;
Ausgangsergebnis:
Hallo,Ich binXiao Ming,Ich komme ausPeking。
$price = 49.5;
$message = sprintf("Der Preis des Produkts ist %.2f Yuan", $price);
echo $message;
Ausgangsergebnis:
Der Preis des Produkts ist 49.50 Yuan
veranschaulichen:
%.2F bedeutet eine schwimmende Punktzahl, die zwei Dezimalstellen behält.
Formatzeichen | Bedeutung | Beispiel |
---|---|---|
%S | Saite | Sprintf ("Hallo %S", "Tom") |
%D | Ganzzahl (dezimal) | Sprintf ("Alter ist %d", 25) |
%F | Schwimmende Punktzahl | Sprintf ("Score ist %.1f", 98,6) |
%X | hexadezimal | Sprintf ("Zahl ist %x", 255) |
%02d | Ganzzahlen mit weniger als zwei Ziffern von Null | Sprintf ("Anzahl ist %02d", 5) => Zahl ist 05 |
Angenommen, Sie müssen einen Link zur Produktdetail -Seite mit Parametern einschließlich der Produkt -ID und dem Namen generieren:
$productId = 123;
$productName = 'Bluetooth -Kopfhörer';
$url = sprintf("https://gitbox.net/product/view.php?id=%d&name=%s", $productId, urlencode($productName));
echo $url;
Ausgangsergebnis:
https://gitbox.net/product/view.php?id=123&name=%E8%93%9D%E7%89%99%E8%80%B3%E6%9C%BA
Sie können einen Parameter in der Formatzeichenfolge unter Verwendung der Nummerierung wiederholen:
$name = 'Zhang San';
$message = sprintf("%1\$s,Hallo!%1\$s,Bitte überprüfen Sie die E -Mail。", $name);
echo $message;
Ausgangsergebnis:
Zhang San,Hallo!Zhang San,Bitte überprüfen Sie die E -Mail。
Beschreibung: %1 \ $ S bedeutet, dass der erste Parameter verwendet wird.
$line = sprintf("| %-10s | %10s |", "Waren", "Preis");
echo $line;
Ausgangsergebnis:
| Waren | Preis |
veranschaulichen:
%-10s : links ausgerichtet, 10 Zeichen breit;
%10s : Richtig ausgerichtet, 10 Zeichen breit.
Obwohl die Verwendung von Sprintf () flexibel ist, sollten Sie bei der Ausgabe auf Webseiten, Datenbanken und Dateien auf die Sicherheit achten:
Denken Sie bei der Ausgabe an eine Webseite daran, HTMLSpecialChars () zu verwenden.
Vermeiden Sie beim Erstellen von SQL Sprintf () direkt. Es wird empfohlen, die Parameterbindung (z. B. Vorverarbeitungsanweisungen für PDO oder MySQLI) zu verwenden.
Die Parameter in der URL werden empfohlen, mit Urlencode () codiert zu werden.
Sprintf () ist ein leistungsstarkes und elegantes Formatierungswerkzeug. Solange Sie die grundlegenden Syntax- und Formatsteuerzeichen beherrschen, können Sie Flügel zur String -Verarbeitung hinzufügen. Unabhängig davon, ob es sich um eine Seitenanzeige, Protokollierung oder das Generieren strukturierter Daten handelt, kann es Ihnen helfen, klarere und wartbare Code zu schreiben.
Wenden Sie es auf Ihr Projekt an!