-1

您好,我正在尝试将变量的值插入字符串而不是符号 %

<?
    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;
    }
    ?>

并调用此函数:

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

但是我的构造不正确:

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

输出是:

<a href=""><span>/span&gt;/a&gt;<ul class="list"><li>26</li></ul>           </span></a>
4

2 回答 2

1

%的不正确。它需要是正确的格式说明符,例如

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

会给你Hello from PHP

您的 printf 字符串应该是:

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

另请注意,printf()立即输出。您可能想要使用sprintf(),它返回格式化的字符串而不是输出它。

于 2013-08-02T14:16:16.223 回答
0

你有没有尝试过?

str_replace('%',$replaceForThis,$input);
于 2013-08-02T14:10:06.177 回答