توابع vsprintf() PHP

مثال

رشته‌های فرمت‌شده را به متغیرها می‌نویسد:

<?php
$number = 9;
$str = "Beijing";
$txt = vsprintf("There are 쥕lion bicycles in %s.",array($number,$str));
echo $txt;
?>

مثال کار

تعریف و استفاده

توابع vsprintf() رشته‌های فرمت‌شده را به متغیرها می‌نویسد.

جسد sprintf() مختلف، پارامترهای vsprintf() در یک آرایه قرار دارند. عناصر آرایه به جایگاه علامت درصد (%) در رشته اصلی اضافه می‌شوند. این تابع به صورت مرحله‌ای اجرا می‌شود. در اولین علامت %، اولین عنصر آرایه اضافه می‌شود، در دومین علامت %، دومین عنصر آرایه اضافه می‌شود و به همین ترتیب.

تعليق:إذا كانت علامة % أكثر من arg إذا كانت لديك معاملات،يجب أن تستخدم العلامات المرجعية. يتم إدراج العلامات المرجعية بعد علامة %،مكونة من رقم و $\n. انظر مثال 2.

نصيحة:الوظائف ذات الصلة:

النحو

vsprintf(format,argarray)
معاملات وصف
format

مطلوب. يحدد النص وكيفية format المعلمات الخاصة به

قيمات format المحتملة:

  • %% - يعود بنسبة (%)
  • %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 - عدد عشري (كتابة كبيرة)

قيمات format الإضافية. يجب وضعها بين % والكتابة الحروف (مثل %.2f):

  • + (يضيف علامة '+' أو '-' أمام الرقم لتحديد إشارة الرقم.افتراضًا،فقط الأرقام السلبية يتم وضع علامة عليها،الأرقام الإيجابية لا تتم وضع علامة عليها)
  • ' (يحدد ما سيتم استخدامه كملء،الافتراض هو مسافة. يجب استخدامه مع معاملات العرض. على سبيل المثال: '%'x20s (استخدام 'x' كملء))
  • - (يوضع العنصر في اليسار)
  • .[0-9] (يحدد أوسع قيمة يمكن أن تكون للمعلمة)
  • .[0-9] (يحدد عدد أرقام النقاط أو أقصى طول النص)

تعليق:إذا كنت تستخدم العديد من القيم الم formatية المذكورة أعلاه، يجب أن تستخدمها في الترتيب المذكور أعلاه وليس من الممكن مزجها

argarray مطلوب. مصفوفة تحتوي على معاملات، والتي سيتم تضمينها format في علامة % في النص

تفاصيل تقنية

القيمة المعدة: يعود بالنسبة لقيم جدول البيانات بشكل نص منتهي بفواصل
إصدار 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>";
?>

مثال کار