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

Przykłady uruchomieniowe

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:

  • %% - zwraca znak procentu %
  • %b - liczba binarna
  • %c - znak odpowiadający wartości ASCII
  • %d - dziesiętna liczba z znakiem plus lub minus (ujemna, 0, dodatnia)
  • %e - używa małych liter w formacie liczb naukowych (np. 1.2e+2)
  • %E - używa dużych liter w formacie liczb naukowych (np. 1.2E+2)
  • 蒝ziesiętna liczba bez znaku plus lub minus (większa lub równa 0)
  • %f - liczba zmiennoprzecinkowa (lokalizowana)
  • %F - liczba zmiennoprzecinkowa (nie lokalizowana)
  • %g - krótsze %e i %f
  • %G - krótsze %E i %f
  • %o - liczba ósemkowa
  • %s - ciąg znaków
  • %x - liczba szesnastkowa (małe litery)
  • %X - liczba szesnastkowa (duże litery)

Dodatkowe wartości formatowe. Muszą być umieszczone między % a literą (np. %.2f):

  • + (dodaje + lub - przed liczbą, aby zdefiniować znak plus lub minus liczby. Domyślnie, tylko ujemne liczby są oznaczane, a liczby dodatnie nie są oznaczane)
  • ' (określa, co użyć jako wypełnienie, domyślnie jest to spacja. Musi być używane razem z wskaźnikiem szerokości. Na przykład: '%x20s' (używa "x" jako wypełnienia))
  • - (lewe wyważenie wartości zmiennej)
  • [0-9] (określa minimalną szerokość wartości zmiennej)
  • .[0-9] (określa liczbę miejsc po przecinku lub maksymalną długość ciągu znaków)

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łady uruchomieniowe

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łady uruchomieniowe

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łady uruchomieniowe

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

Przykłady uruchomieniowe