php中的sprintf(),printf()

函数中常见设置数值的格式

  • b表示二进制整数
  • s表示字符串
  • d表示十进制整数
  • c表示ascii整数
  • o表示八进制整数
  • u表示无符号十进制整数
  • f表示浮点数
  • x表示十六进制整数
  • e表示科学计数
<html>
<head>
    <meta http-equiv="content-type" charset="utf-8" />
</head>
<body>
<?php
    //连接数据库失败以后,使用die结束程序
    $dbc = @mysqli_connect('localhost','root','gonglishan520','xsphpdb') or die('<p>could connect database</p>');
    //这里先判断是否提交过来,然后判断有没有数据
    if(isset($_POST['submitted']) && !empty($_POST['task'])){
        //判断是否有父路径
        if(isset($_POST['parent_id'])){
            //进行强制类型转换,确保parent_id是个整数
            $parent_id = (int)$_POST['parent_id'];   
        }else{
            $parent_id = 0;   
        }
        /*
		*使用mysqli_real_escape_string处理提交的字符串,确保其安全 
		*使用sprintf来连接sql语句,使得语句更简洁,更易于调试             
		*/
        $q = sprintf("insert into tasks(parent_id,task) values(%d,'%s')",$parent_id,mysqli_real_escape_string($dbc,$_POST['task']));
        $r = mysqli_query($dbc,$q);
       
        //确保操作成功
        if(mysqli_affected_rows($dbc) == 1){
            echo '<p>the task has been added!</p>';   
        }else{
            echo '<p>the task could not be added!</p>';
        }
    }
   
    echo '<form action="test.php" method="post">
    <fieldset>
    <legend>add a task</legend>
    <p>task:<input name="task" type="text" size="60" maxlength="100"></p>
    <p>parent task:<select name="parent_id"><option value="0">none</option>   
    ';   
   
    $q = 'select task_id,parent_id,task from tasks where date_completed="0000-00-00 00:00:00" order by date_added asc';
    $r = mysqli_query($dbc,$q);
   
    $tasks = array();
   
    while(list($task_id,$parent_id,$task) = mysqli_fetch_array($r,MYSQLI_NUM)){
        echo "<option value=\"$task_id\">$task</option>\n";       
        $tasks[] = array('task_id'=>$task_id, 'parent_id'=>$parent_id, 'task'=>$task);   
    }
   
    echo '</select></p>
    <input name="submitted" type="hidden" value="true">
    <input name="submit" type="submit" value="add this task">
   
    </form>
    </fieldset>
    ';
   
    function parent_sort($x,$y){
        return ($x['parent_id'] > $y['parent_id']);   
    }
    //用户自定义排序方法
    usort($task,'parent_sort');
   
    echo '<h3>current to do list</h3><ul>';
   
    foreach($tasks as $task){
        echo "<li>{$task['task']}</li>\n";   
    }
   
    echo '</ul>';
?>
</body>
</html>

如果想在字符串中表示百分号,就再添加一个百分号对其进行转义

printf('the tax rate is %0.2f%%', $tax);


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值