douwen7603 2013-08-02 14:03
浏览 6
已采纳

如何插入值来定位字符串而不是%?

Hello I am trying to insert the values of variables to string instead of symbols %

<?
    function SpacerBlocks($number_space, $parent, $children, $array, $inside, $position_start = 0) {

        $result = '';
        $items = $result;
        for ($position_start; $position_start < count($array); $position_start++) { 
            $items.='<'.$children.'>' . 
                    printf($inside, $array[$position_start]['CNT'], 
                           $array[$position_start]['NAME']) . '</'.$children.'>';
            if ($position_start%$number_space == 0) {
                $result.='<'.$parent.'>'.$items.'</'.$parent.'>';
            }
        }
        return $result;
    }
    ?>

And call this function:

<?=SpacerBlocks(10, 'ul class="list"', 'li', $categories_doctors, 
                '<a href=""><span>%</span>%</a>');?>

But my construction does not work correct:

printf($inside, $array[$position_start]['CNT'], $array[$position_start]['NAME'])

Output is:

<a href=""><span>/span&gt;/a&gt;<ul class="list"><li>26</li></ul>           </span></a>
  • 写回答

2条回答 默认 最新

  • 普通网友 2013-08-02 14:16
    关注

    Your % are incorrect. It needs to be a proper format specifier, e.g.

    printf('Hello %s PHP', 'from')
                   ^--string format
    

    will give you Hello from PHP.

    Your printf string should be:

    SpacerBlocks(....., '<a href=""><span>%s</span>%s</a>');
                                          ^^       ^^---note the S's
    

    Also note that printf() does immediate output. You may want to use sprintf(), which returns the formated string instead of outputting it.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?