PHP vsprintf() συνάρτηση

Παράδειγμα

Γράψτε τη μορφοποιημένη αλφαριθμητική αλυσίδα σε μεταβλητή:

<?php
$number = 9;
$str = "Beijing";
$txt = vsprintf("Υπάρχουν 䦪τομμύρια ποδήλατα στο %s.", array($number, $str));
echo $txt;
?>

运行实例

Ορισμός και χρήση

Η συνάρτηση vsprintf() γράφει τη μορφοποιημένη αλφαριθμητική αλυσίδα σε μεταβλητή.

Με διαφορετικό τρόπο από το sprintf(), οι παραμέτρους στο vsprintf() τις τοποθετούνται σε μια λίστα. Οι στοιχεία της λίστας θα εισάγονται στις θέσεις του χαρακτήρα (%) του κύριου 문자στοιχείου. Η συνάρτηση εκτελείται σταδιακά. Στη θέση του πρώτου %, εισάγεται το πρώτο στοιχείο της λίστας, στη θέση του δεύτερου %, εισάγεται το δεύτερο στοιχείο της λίστας, και ούτω καθεξής.

Σχόλια:Αν υπάρχουν περισσότεροι από έναν % arg Αν χρησιμοποιούνται παραμέτρους, πρέπει να χρησιμοποιηθούν ταμπέλες. Οι ταμπέλες εισάγονται μετά από το %, αποτελούνται από αριθμό και το "\$". Δείτε το παράδειγμα 2.

Συμβουλή:Συσχετιζόμενες συνάρτησεις:

Γλωσσική δομή

vsprintf(μορφοποίηση,argarray)
Παράμετροι Περιγραφή
μορφοποίηση

Απαιτείται. Καθορίζει την αλφαβητική αλυσίδα και τον τρόπο μορφοποίησης των μεταβλητών της.

Πιθανές τιμές μορφοποίησης:

  • %% - Επιστρέφει έναν παροπλισμό%
  • %b - Δεκαδικός αριθμός
  • %c - Χαρακτήρας που αντιστοιχεί στην ASCII τιμή
  • %d - Δεκαδικός αριθμός με πρόσημο (αρνητικός, 0, θετικός)
  • %e - Χρήση μικρών γραμμάτων στη μαθηματική έκδοση (π.χ. 1.2e+2)
  • %E - Χρήση μεγάλων γραμμάτων στη μαθηματική έκδοση (π.χ. 1.2E+2)
  • 蟭εκαδικός αριθμός χωρίς πρόσημο (μεγαλύτερος ή ίσος με 0)
  • %f - Πόντιο αριθμός (τοπικές ρυθμίσεις)
  • %F - Πόντιο αριθμός (μη τοπικές ρυθμίσεις)
  • %g - Μικρότερης έκδοσης του %e και %f
  • %G - Μικρότερης έκδοσης του %E και %f
  • %o - Οκταδικός αριθμός
  • %s - Αλφαβητική αλυσίδα
  • %x - Δεκαεξαδικός αριθμός (με μικρά γράμματα)
  • %X - Δεκαεξαδικό αριθμός (με μεγάλα γράμματα)

Προσθέτητες τιμές μορφοποίησης. Απαιτείται να τοποθετηθούν μεταξύ % και γραμμάτων (π.χ. %.2f):

  • + (προσθέτει + ή - μπροστά από το αριθμό για να καθορίσει τη θετικότητα ή την αρνητικότητα του αριθμού. Προεπιλεγόμενα, σημειώνονται μόνο τα αρνητικά αριθμήματα, τα θετικά αριθμήματα δεν σημειώνονται)
  • ' (θέτει τιμές που χρησιμοποιούνται ως συμπληρωματικός χαρακτήρας, προεπιλεγόμενος είναι το κενό. Πρέπει να χρησιμοποιείται μαζί με τον καθοριστή πλάτους. Παράδειγμα: '%x20s' (χρήση 'x' ως συμπληρωματικού χαρακτήρα))
  • - (αριστερή ρύθμιση της τιμής μεταβλητής)
  • .[0-9] (θέτει το ελάχιστο πλάτος της τιμής μεταβλητής)
  • .[0-9] (θέτει το μέγεθος των δεκαδικών ψηφίων ή τη μέγιστη μήκος της αλφαβητικής αλυσίδας)

Σχόλια:Αν χρησιμοποιούνται πολλαπλές μορφοποιητικές τιμές, πρέπει να χρησιμοποιούνται ακολουθώντας τη σειρά που αναφέρεται παραπάνω και δεν πρέπει να παραβιάζονται.

argarray Απαιτείται. Ένας πίνακας με παραμέτρους που θα εισαχθούν μορφοποίηση Στο σημείο % του αλφαβητικού

Τεχνικά λεπτομέρειες

Αποτελεσματική τιμή: Επιστρέφει τις τιμές του μαγνητίτη σε μορφή μορφοποιημένης αλφαβητικής αλυσίδας.
Έκδοση PHP: 4.1.0+

Περισσότερες παραδείγματα

Παράδειγμα 1

Χρήση τιμών μορφοποίησης %f:

<?php
num1 = 123;
num2 = 456;
txt = vsprintf("%f%f",array($num1,$num2));
echo $txt;
?>

运行实例

例子 2

使用占位符:

<?php
$number = 123;
$txt = vsprintf("有两位小数:%1\$.2f<br>没有小数:%1\$u",array($number));
echo $txt;
?>

运行实例

例子 3

使用 sprintf() 来演示所有可能的格式值:

<?php
$num1 = 123456789;
$num2 = -123456789;
$char = 50; // ASCII 字符 50 是 2
// 注释:格式值 "%%" 返回百分号
echo sprintf("%%b = %b",$num1)."<br>"; // 二进制数
echo sprintf("%%c = %c",$char)."<br>"; // ASCII 字符
echo sprintf("%%d = %d",$num1)."<br>"; // 带符号的十进制数
echo sprintf("%%d = %d",$num2)."<br>"; // 带符号的十进制数
echo sprintf("%%e = %e",$num1)."<br>"; // 科学计数法(小写)
echo sprintf("%%E = %E",$num1)."<br>"; // 科学计数法(大写)
echo sprintf("%鑾u",$num1)."<br>"; // 不带符号的十进制数(正)
echo sprintf("%鑾u",$num2)."<br>"; // 不带符号的十进制数(负)
echo sprintf("%%f = %f",$num1)."<br>"; // 浮点数(视本地设置)
echo sprintf("%%F = %F",$num1)."<br>"; // 浮点数(不视本地设置)
echo sprintf("%%g = %g",$num1)."<br>"; // 短于 %e 和 %f
echo sprintf("%%G = %G",$num1)."<br>"; // 短于 %E 和 %f
echo sprintf("%%o = %o",$num1)."<br>"; // 八进制数
echo sprintf("%%s = %s",$num1)."<br>"; // 字符串
echo sprintf("%%x = %x",$num1)."<br>"; // 十六进制数(小写)
echo sprintf("%%X = %X",$num1)."<br>"; // 十六进制数(大写)
echo sprintf("%%+d = %+d",$num1)."<br>"; // 符号说明符(正)
echo sprintf("%%+d = %+d",$num2)."<br>"; // 符号说明符(负)
?>

运行实例

例子 4

字符串说明符的演示:

<?php
$str1 = "Hello";
$str2 = "Hello world!";
echo vsprintf("[%s]",array($str1))."<br>";
echo vsprintf("[%8s]",array($str1))."<br>";
echo vsprintf("[%-8s]",array($str1))."<br>";
echo vsprintf("[%08s]",array($str1))."<br>";
echo vsprintf("[%'*8s]",array($str1))."<br>";
echo vsprintf("[%8.8s]",array($str2))."<br>";
?>

运行实例