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>"; ?>