您好,欢迎访问一九零五行业门户网

PHP sprintf() 函数使用方法详解_PHP教程

我们知道sprintf() 函数把格式化的字符串写写入一个变量中,我们经常会看到这类代码了,下面我来介绍sprintf() 函数使用方法,有需要的朋友可参考参考。
用法
sprintf(format,arg1,arg2,arg++)
说明
参数 format 是转换的格式,以百分比符号 (%) 开始到转换字符结束。下面的可能的 format 值:
•%% - 返回百分比符号
•%b - 二进制数
•%c - 依照 ascii 值的字符
•%d - 带符号十进制数
•%e - 可续计数法(比如 1.5e+3)
•%u - 无符号十进制数
•%f - 浮点数(local settings aware)
•%f - 浮点数(not local settings aware)
•%o - 八进制数
•%s - 字符串
•%x - 十六进制数(小写字母)
•%x - 十六进制数(大写字母)
arg1, arg2, ++ 等参数将插入到主字符串中的百分号 (%) 符号处。该函数是逐步执行的。在第一个 % 符号中,插入 arg1,在第二个 % 符号处,插入 arg2,依此类推。
我在微信开放平台会看到如下代码
 代码如下 复制代码
$postobj = simplexml_load_string($poststr, 'simplexmlelement', libxml_nocdata);
                $fromusername = $postobj->fromusername;
                $tousername = $postobj->tousername;
                $keyword = trim($postobj->content);
                $time = time();
    $msgtype = text;
                $texttpl =
%s
0
       ;            
    if(!empty( $keyword ))
                {
$contentstr = $this->keyrep($keyword);
     if(  empty($contentstr) )
     {
      $contentstr =你是故意的吧,没文化真可怕;//你是故意的吧,没文化真可怕;
     }
     //$contentstr = @iconv('utf-8','gb2312',$keyword);
                 $resultstr = sprintf($texttpl, $fromusername, $tousername, $time, $msgtype, $contentstr);
                 echo $resultstr;
}else{
                 $contentstr = '没文化真可怕,居然不会打字!';//$this->keyrep($keyword);
                 //$contentstr = @iconv('utf-8','gb2312',$keyword);
     $resultstr = sprintf($texttpl, $fromusername, $tousername, $time, $msgtype, $contentstr);
                 echo $resultstr;
                }
上面用到的是xml中了,下面再看一个网友写的例子
 代码如下 复制代码
测试下%这个参数。会被替换成什么呢;
 //只剩下一个%了
 //看来还真的只是返回一个‘%’。但是实际应用中该怎么用呢?
 //我也不知道~
 echo '
';
 /**
 *    2.    %b
 *        该参数只能替换整型数据。如果是浮点型,那么他只会取整数部分。小数点后边的会忽略
 *        如果是一个非整型数据,那么返回 0
 */
 $teststr    = '听说%b会替换成二进制数,真的吗?';
 $arg        = '10';
 echo sprintf($teststr, $arg),'
';
 //-> 1010;    $arg=10;    真的替换了!
 //-> 101;    $arg=4.5
 //-> 0;        $arg=str/bool...
 echo '
';
/**
 *    3.    %c 返回字符编码的ascii码
 *        tip:[他不是返回ascii码]
 *        $arg接受一个int传入即ascii的数字值,然后返回该值对应的字符
 */
 $teststr    = '我们来测试下 %c : 试试看能返回ascii码吗';
 $arg    = '122';
 echo sprintf($teststr, $arg);
 //-> a;    $arg=65;
 //-> z; $arg=122
 echo '
';
 /**
  *    4. %d 将一段字符里的%d替换成int型
  *        tip:这里可以是任意一个int整型。
  *            如果是一个浮点数据,那么只会替换整数部分
  *            如果是非数字的,那么会替换成0
  */
 $teststr    = 这是一个id,id号是%d,;
 $arg        = '-4';
 echo sprintf($teststr, $arg);
 //-> 4;    $arg=4.5
 //-> 0; $arg=[a-za-zs];
 echo '
';
/**
  *    5.    %e 科学计数法
  *        tip:将一段很长很长的int整型数据以科学计数法的形式呈现
  *            同%d,该函数同样会忽略掉小数点后面的,任何非数值数据替换成0
 */
 $teststr    = 我很长,有n多位。。。 %e;
 $arg        = '46498464654864564642449463699789789313';
 echo sprintf($teststr, $arg);
 //-> 4.649846e+14;    $arg=464984646548645.64642449463699789789313
 //-> 0.000000e+0; $arg=asdfasdf;
 echo '
';
/**
  *    5.    %u - 无符号十进制数
  *        不明白。。。如果有是负数,他的值不知道是啥值
 */
 $teststr    = 我是无符号的十进制数。。。 %u;
 $arg        = '456';
 echo sprintf($teststr, $arg);
 echo '
';
/**
  *    6.    %f - 浮点数(local settings aware)
  *            难道和%d是相反的?
  *                这个会返回一个浮点数,并且小数点后面只有固定的6位
  *                字符串同样为 0 ;
 */
 $teststr    = 和那个d有啥区别呢?%f;
 $arg        = '456.235645';
 echo sprintf($teststr, $arg);
 echo '
';
/**
  *    7.    %f - 浮点数(not local settings aware)
  *        难道和%f是相反的?怎么和小f没区别?不会吧
  */
 $teststr    = 和那个小写的f有啥区别呢?%f;
 $arg        = '12312316.46898';
 echo sprintf($teststr, $arg);
 echo '
';
/**
  *    8.    %o - 八进制数
  *        同%d一样。只不过参数传入一个八进制数值
  */
 $teststr    = 将八进制数替换成十进制的 %o;
 $arg        = '8';
 echo sprintf($teststr, $arg);
 echo '
';
/**
  *    9.    %x - 十六进制数(小写字母)
  *        同%d/%o一样。只不过参数传入一个小写字母的十六进制数值
  */
 $teststr    = 将十六进制数替换成十进制的 %o;
 $arg        = '456d12';
 echo sprintf($teststr, $arg);
 echo '
';
/**
  *    10.    %x - 十六进制数(大写字母)
  *        同%d/%o/%x一样。只不过参数传入一个大写字母的十六进制数值
  *        貌似%x %x两个字母大小写没区别...
  */
 $teststr    = 将大写字母的十六进制数替换成十进制的 %o;
 $arg        = '456d12';
 echo sprintf($teststr, $arg);
 echo '
';
/**
  *    11.    %s - 字符串
  *        用你传入的字符串替换掉%s
  */
 $string    = 这是用来测试的sprintf的字符串( %s )。今天消费了%f元。从西二旗到知春路有%d站。上班;
 $arg    = '';
 echo sprintf($string, $arg, 234, 10);
 echo '
';
?>
http://www.bkjia.com/phpjc/628892.htmlwww.bkjia.comtruehttp://www.bkjia.com/phpjc/628892.htmltecharticle我们知道sprintf() 函数把格式化的字符串写写入一个变量中,我们经常会看到这类代码了,下面我来介绍sprintf() 函数使用方法,有需要的朋友...
其它类似信息

推荐信息