PHP printf() 函数

实例

输出格式化的字符串:

<?php
$number = 9;
$str = "北京";
printf("在%s有 䍏自行车。",$str,$number);
?>

运行实例

定义和用法

printf() 函数输出格式化的字符串。

arg1arg2arg++ 参数将被插入到主字符串中的百分号(%)符号处。该函数是逐步执行的。在第一个 % 符号处,插入 arg1,在第二个 % 符号处,插入 arg2,依此类推。

ملاحظة:如果 % 符号多于 arg 参数,则您必须使用占位符。占位符被插入到 % 符号之后,由数字和 "\$" 组成。请参见例子 2。

提示:相关函数:sprintf()、 vprintf()、 vsprintf()、 fprintf() 和 vfprintf()

语法

printf(format,arg1,arg2,arg++)
参数 描述
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 - 十六进制数(大写字母)

附加的格式值。必需放置在 % 和字母之间(例如 %.2f):

  • + (在数字前面加上 + 或 - 来定义数字的正负性。默认地,只有负数做标记,正数不做标记)
  • (规定使用什么作为填充,默认是空格。它必须与宽度指定器一起使用。)
  • - (يسحب القيمة المتغيرة إلى اليسار)
  • .[0-9] (يحدد أقل عرض للقيمة المتغيرة)
  • .[0-9] (يحدد عدد الأرقام بعد النقطة أو أقصى طول النص)

ملاحظة:إذا تم استخدام عدة قيم مفترضة من الأعلى، يجب استخدامها وفقًا للترتيب المذكور أعلاه، لا يمكن العبث بالترتيب.

arg1 ضروري. يحدد الموضع الذي يتم فيه إدخال format الوحدة في النص التي تأتي بعد % المثلثة الأولى
arg2 ضروري. يحدد الموضع الذي يتم فيه إدخال format الوحدة في النص التي تأتي بعد % المثلثة الثانية
arg++ اختياري. يحدد الموضع الذي يتم فيه إدخال format الوحدة في النص الذي يحتوي على % المثلثة التي تأتي بعد الثالثة، الرابعة، إلخ %

تفاصيل تقنية

القيمة المعدة: يعود بطول النص الذي تم إخراجه.
إصدار PHP: 4+

مزيد من الأمثلة

مثال 1

استخدام القيمة المفترضة %f:

<?php
$number = 123;
printf("%f",$number);
?>

运行实例

مثال 2

استخدام الرمز المخصص:

<?php
$number = 123;
printf("عندما يكون لدينا اثنان من الأرقام بعد نقطة:%1\$.2f<br>عندما لا يكون لدينا أي رقم بعد نقطة:%1\$u",$number);
?>

运行实例

مثال 3

عرض جميع القيم الممكنة للتنسيق:

<?php
$num1 = 123456789;
$num2 = -123456789;
$char = 50; // حرف ASCII 50 هو 2
// ملاحظة: القيمة الم格式ية "%%" تعود إلى النسبة المئوية
printf("%%b = %b <br>",$num1); // عدد ثنائي
printf("%%c = %c <br>",$char); // حرف ASCII
printf("%%d = %d <br>",$num1); // عدد عشري معتمد (موجب)
printf("%%d = %d <br>",$num2); // عدد عشري معتمد (موجب)
printf("%%e = %e <br>",$num1); // نظام العدد العلمي (صغير الحروف)
printf("%%E = %E <br>",$num1); // نظام العدد العلمي (كبير الحروف)
printf("%鑾u <br>",$num1); // عدد عشري غير معتمد (إيجابي)
printf("%鑾u <br>",$num2); // عدد عشري غير معتمد (سالب)
printf("%%f = %f <br>",$num1); // عدد عشري (يأخذ في الاعتبار إعدادات اللغة المحلية)
printf("%%F = %F <br>",$num1); // عدد عشري (لا يأخذ في الاعتبار إعدادات اللغة المحلية)
printf("%%g = %g <br>",$num1); // قصير عن %e و %f
printf("%%G = %G <br>",$num1); // 短于%E和%f
printf("%%o = %o <br>",$num1); // 八进制数
printf("%%s = %s <br>",$num1); // 字符串
printf("%%x = %x <br>",$num1); // 十六进制数(小写)
printf("%%X = %X <br>",$num1); // 十六进制数(大写)
printf("%%+d = %+d <br>",$num1); // 符号说明符(正)
printf("%%+d = %+d <br>",$num2); // 符号说明符(负)
?>

运行实例

例子4

字符串说明符的演示:

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

运行实例