Bei der PHP -Programmierung ist die Sprintf -Funktion ein sehr nützliches Werkzeug, das Strings formatiert und dynamische Werte in vordefinierte Zeichenfolgenvorlagen einfügt. Die Verwendung der Sprintf -Funktion kann den Code prägnanter und einfacher machen. In diesem Artikel wird untersucht, wie die Sprintf -Funktion verwendet wird, um HTML -Tabellen zu generieren und einige praktische Techniken und Methoden anzuzeigen.
Die Sprintf -Funktion wird verwendet, um Zeichenfolgen in Variablen auszugeben, anstatt sie direkt auszugeben. Die grundlegende Syntax ist wie folgt:
sprintf(string $format, mixed ...$values): string
$ Format : Formatstring, die Platzhalter enthalten (z. B. %S , %d ).
$ Werte : Der Wert, der in die formatierte Zeichenfolge eingefügt wird.
%s ist ein Streicher -Platzierer, %d ist ein Platzhalter, und es gibt viele andere Platzhalter, die nach Ihren Anforderungen ausgewählt werden können.
Schauen wir uns zunächst ein einfaches Beispiel an, das zeigt, wie Sprintf verwendet wird, um eine HTML -Tabelle mit Tabellenkopf- und Tabelleninhalt zu generieren.
<?php
// Kopfball
$tableHeader = sprintf(
"<tr><th>%s</th><th>%s</th><th>%s</th></tr>",
'Name',
'Alter',
'Stadt'
);
// Tabellarische Daten
$data = [
['Zhang San', 25, 'Peking'],
['Li Si', 30, 'Shanghai'],
['Wang Wu', 28, 'Guangzhou']
];
// Tabelleninhalt
$tableContent = '';
foreach ($data as $row) {
$tableContent .= sprintf(
"<tr><td>%s</td><td>%d</td><td>%s</td></tr>",
$row[0],
$row[1],
$row[2]
);
}
// Vollständig HTML Blatt
$table = sprintf(
"<table border='1'>%s%s</table>",
$tableHeader,
$tableContent
);
echo $table;
?>
In diesem Beispiel verwenden wir die Sprintf -Funktion, um den Inhalt des Tabellenheaders und des Tabellens zu generieren. $ tableHeader verwendet %s Platzhalter, um Spaltennamen einzufügen, während $ TableContent %s und %d zum Einfügen von Daten verwendet.
Wenn Sie ein dynamisches Array oder Daten aus der Datenbank erhalten haben, können Sie auch Sprintf verwenden, um HTML -Tabellen zu generieren. Nehmen wir beispielsweise an, dass die folgenden Daten aus der Datenbank erhalten werden:
// Simulieren Sie die aus der Datenbank erhaltenen Daten
$data = [
['Zhang San', 25, 'Peking'],
['Li Si', 30, 'Shanghai'],
['Wang Wu', 28, 'Guangzhou']
];
Sie können Tabellen dynamisch über Sprintf erzeugen:
<?php
$tableHeader = sprintf(
"<tr><th>%s</th><th>%s</th><th>%s</th></tr>",
'Name',
'Alter',
'Stadt'
);
$tableContent = '';
foreach ($data as $row) {
$tableContent .= sprintf(
"<tr><td>%s</td><td>%d</td><td>%s</td></tr>",
$row[0],
$row[1],
$row[2]
);
}
$table = sprintf(
"<table border='1'>%s%s</table>",
$tableHeader,
$tableContent
);
echo $table;
?>
Sie können auch Sprintf verwenden, um HTML -Tabellen mit Links zu generieren. Wenn Sie beispielsweise einen Link zu einer Spalte in einer Tabelle hinzufügen, kann die Linkadresse basierend auf den Daten dynamisch generiert werden:
<?php
$data = [
['Zhang San', 25, 'Peking', 'https://gitbox.net/user/zhangsan'],
['Li Si', 30, 'Shanghai', 'https://gitbox.net/user/lisi'],
['Wang Wu', 28, 'Guangzhou', 'https://gitbox.net/user/wangwu']
];
$tableHeader = sprintf(
"<tr><th>%s</th><th>%s</th><th>%s</th><th>%s</th></tr>",
'Name',
'Alter',
'Stadt',
'Persönliche Homepage'
);
$tableContent = '';
foreach ($data as $row) {
$tableContent .= sprintf(
"<tr><td>%s</td><td>%d</td><td>%s</td><td><a href='%s'>Persönliche Homepage</a></td></tr>",
$row[0],
$row[1],
$row[2],
$row[3]
);
}
$table = sprintf(
"<table border='1'>%s%s</table>",
$tableHeader,
$tableContent
);
echo $table;
?>
In diesem Beispiel fügen wir für jeden Benutzer einen Link hinzu, die Link -Adresse wird dynamisch generiert und der Domänenname wurde durch gitbox.net ersetzt.
Manchmal müssen wir möglicherweise die generierte Tabelle formatieren, um sie lesbarer zu machen. Zum Beispiel können wir CSS -Klassen hinzufügen oder den Stil der Tabelle festlegen, wenn wir die Tabelle generieren:
<?php
$tableHeader = sprintf(
"<tr><th>%s</th><th>%s</th><th>%s</th></tr>",
'Name',
'Alter',
'Stadt'
);
$tableContent = '';
foreach ($data as $row) {
$tableContent .= sprintf(
"<tr><td class='name'>%s</td><td class='age'>%d</td><td class='city'>%s</td></tr>",
$row[0],
$row[1],
$row[2]
);
}
$table = sprintf(
"<table class='user-table' border='1' style='border-collapse: collapse; padding: 10px;'>%s%s</table>",
$tableHeader,
$tableContent
);
echo $table;
?>
Durch das Hinzufügen von CSS -Klassen zu Tabellen und Tabellenzellen können Sie den Stil problemlos steuern und die Tabelle ästhetischer und lesbarer machen.