Funkcja sprintf() w PHP
Przykład
Zamień znak procenta (%) na zmienną przekazywaną jako parametr:
<?php
$number = 2;
$str = "Shanghai";
$txt = sprintf("There are 쥕lion cars in %s.", $number, $str);
echo $txt;
?>
Definicja i użycie
Funkcja sprintf() zapisuje sformatowany ciąg znaków do zmiennej.
arg1,arg2,++ Parametry będą wstawiane w miejsca znaków % w głównym ciągu znaków. Funkcja jest wykonywana krok po kroku. W miejscu pierwszego znaku % wstaw arg1, w miejscu drugiego znaku % wstaw arg2, w ten sposób.
Komentarz:Jeśli jest więcej znaków% arg Jeśli używane są parametry, musisz użyć占位符。占位nik znajduje się po znaku %, złożony z liczby i "\$". Zobacz przykład 2.
Wskazówka:Związane funkcje: printf(), vprintf(), vsprintf(), fprintf() i vfprintf()
Gramatyka
sprintf(format,arg1,arg2,arg++)
| Parametr | Opis |
|---|---|
| format |
wymagane. Określa ciąg znaków oraz sposób formatowania zmiennych w nim zawartych. Możliwe wartości formatowe:
Dodatkowe wartości formatowe. Muszą być umieszczone między % a literą (np. %.2f):
Komentarz:Jeśli używane są wiele takich wartości formatowych, muszą być używane w kolejności określonej powyżej. |
| arg1 | wymagane. Określa, gdzie wstawić format Parametr w miejscu pierwszego znaku % w ciągu znaków. |
| arg2 | opcjonalne. Określa, gdzie wstawić format Parametr w miejscu drugiego znaku % w ciągu znaków. |
| arg++ | opcjonalne. Określa, gdzie wstawić format Parametry w miejscach trzeciego i czwartego znaku % w ciągu znaków. |
Szczegóły techniczne
| Zwracana wartość: | Zwraca sformatowaną ciąg liter. |
| Wersja PHP: | 4+ |
Więcej przykładów
Przykład 1
Użycie wartości formatowej %f:
<?php
$number = 123;
$txt = sprintf("%f",$number);
echo $txt;
?>
Przykład 2
Użycie占位符:
<?php
$number = 123;
$txt = sprintf("Z dwoma miejscami po przecinku:%1\$.2f
<br>Bez ułamkowej części:%1\$u",$number);
echo $txt;
?>
Przykład 3
Prezentacja wszystkich możliwych wartości formatowych:
<?php
$num1 = 123456789;
$num2 = -123456789;
$char = 50; // Znak ASCII 50 to 2
// Komentarz: wartość formatowa "%%" zwraca procent
echo sprintf("%%b = %b",$num1)."<br>"; // liczba binarna
echo sprintf("%%c = %c",$char)."<br>"; // znak ASCII
echo sprintf("%%d = %d",$num1)."<br>"; // dziesiętny ze znakiem
echo sprintf("%%d = %d",$num2)."<br>"; // dziesiętny ze znakiem
echo sprintf("%%e = %e",$num1)."<br>"; // liczba w formacie naukowym (małe liter)
echo sprintf("%%E = %E",$num1)."<br>"; // liczba w formacie naukowym (wielkie liter)
echo sprintf("%鑾u",$num1)."<br>"; // dziesiętny bez znaku (dodatni)
echo sprintf("%鑾u",$num2)."<br>"; // dziesiętny bez znaku (ujemny)
echo sprintf("%%f = %f",$num1)."<br>"; // liczba zmiennoprzecinkowa (uwzględnia ustawienia lokalne)
echo sprintf("%%F = %F",$num1)."<br>"; // liczba zmiennoprzecinkowa (nie uwzględnia ustawień lokalnych)
echo sprintf("%%g = %g",$num1)."<br>"; // krótszy niż %e i %f
echo sprintf("%%G = %G",$num1)."<br>"; // krótszy niż %E i %f
echo sprintf("%%o = %o",$num1)."<br>"; // ósemkowy numer
echo sprintf("%%s = %s",$num1)."<br>"; // Ciąg znaków
echo sprintf("%%x = %x",$num1)."<br>"; // Liczba szesnastkowa (małe litery)
echo sprintf("%%X = %X",$num1)."<br>"; // Liczba szesnastkowa (wielkie litery)
echo sprintf("%%+d = %+d",$num1)."<br>"; // Znak oznaczający symbol (dodatni)
echo sprintf("%%+d = %+d",$num2)."<br>"; // Znak oznaczający symbol (ujemny)
?>
Przykład 4
Pokaz przykładu dla znaków łańcuchowych:
<?php
$str1 = "Hello";
$str2 = "Hello world!";
echo sprintf("[%s]",$str1)."<br>";
echo sprintf("[%8s]",$str1)."<br>";
echo sprintf("[%-8s]",$str1)."<br>";
echo sprintf("[%08s]",$str1)."<br>";
echo sprintf("[%'*8s]",$str1)."<br>";
echo sprintf("[%8.8s]",$str2)."<br>";
?>

