vsprintf
با «قالب بندی با vsprintf» می توانی رشته قالبی بسازی. «قالب (Format)» یعنی متنی با % برای جاگذاری مقدارها.
قالب بندی با vsprintf چیست؟
vsprintf() مثل sprintf() است؛ اما ورودی ها را در «آرایه (Array)» می گیرد و در متن می نشاند.
سینتکس
vsprintf(format, argarray)
مثال 1: ساخت متن قالبی در متغیر
عدد و شهر از آرایه وارد متن می شوند و سپس چاپ می شوند.
<?php
$number = 9;
$str = "Beijing";
$txt = vsprintf("There are %u million bicycles in %s.", array($number, $str));
echo $txt;
?>
مثال 2: قالب اعشاری با %f
با %f اعداد اعشاری چاپ می شوند. هر مقدار در آرایه است.
<?php
$num1 = 123;
$num2 = 456;
$txt = vsprintf("%f%f", array($num1, $num2));
echo $txt;
?>
مثال 3: تکرار آرگومان با %1$
با %1$ یک مقدار را چند بار، با قالب های مختلف استفاده کن.
<?php
$number = 123;
$txt = vsprintf("With 2 decimals: %1\$.2f<br>\n<br>With no decimals: %1\$u", array($number));
echo $txt;
?>
مثال 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>";
?>
گام های عملی
- قالب را با % و حروف مناسب تعیین کن.
- مقدارها را به ترتیب در آرایه بچین.
vsprintf($format, $args)را صدا بزن.
پیوندهای مرتبط
- قالب بندی با vsprintf برای مرور سریع.
- sprintf برای ورودی های جداگانه.
- vprintf برای چاپ مستقیم.
- vfprintf برای نوشتن در فایل.
جمع بندی سریع
- ورودی ها همیشه یک آرایه اند.
- ترتیب درصدها مهم است.
%1$برای تکرار آرگومان است.%sرشته است؛%dعدد صحیح.