sprintf
تابع sprintf یک رشته قالب بندی شده می سازد و برمی گرداند. «قالب (Format)» الگوست. «جای نگهدار (Placeholder)» همان % به همراه نوع است. بنابراین مقدارها طبق الگو در متن می نشینند.
تعریف و کاربرد
تابع sprintf(format, arg1, arg2, ...) مقدارها را به ترتیب روی %ها می نشاند و رشته نهایی را برمی گرداند.
نکته: اگر %ها بیشتر از آرگومان هاست، از جای نگهدار عددی مثل %1$ استفاده کن.
تابع sprintf در PHP مرجع همین صفحه است.
سینتکس و مقادیر قالب
نمادهای پرکاربرد: %% درصد، %s رشته، %d عدد صحیح، %u بدون علامت، %f اعشاری، %x/%X هگز، %o اکتال، %e/%E علمی.
گزینه های اضافی بین % و حرف می آیند: + علامت، ' پَدینگ، - چپ چین، عدد پهنا، .عدد دقت.
مثال 1: جای گذاری ساده
<?php
$number = 9;
$str = "Beijing";
$txt = sprintf("There are %u million bicycles in %s.", $number, $str);
echo $txt;
?>
مثال 2: فرمت اعشاری
<?php
$number = 123;
$txt = sprintf("%f", $number);
echo $txt;
?>
مثال 3: استفاده از جای نگهدار عددی
<?php
$number = 123;
$txt = sprintf(
"With 2 decimals: %1$.2f<br>\n<br>With no decimals: %1$u",
$number
);
echo $txt;
?>
مثال 4: مشخصه های رشته ای
<?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>";
?>
گام های عملی
- متن الگو را بنویس.
- برای هر مقدار یک نوع تعیین کن.
- با
sprintfخروجی را بساز و چاپ کن.
نکته: ترتیب گزینه های اضافی باید همین باشد: + سپس ' سپس - سپس پهنا و در پایان .دقت.
نکته: برای چاپ مستقیم از printf و برای آرایه آرگومان ها از vsprintf استفاده کن.
جمع بندی سریع
sprintfفقط رشته می سازد و برمی گرداند.- نوع خروجی را با مشخصه تعیین کن.
- پهنای فیلد و دقت اختیاری اند.
- کمبود آرگومان ها را با
%1$جبران کن.