Php 如何插入值来代替%定位字符串?

Php 如何插入值来代替%定位字符串?,php,Php,您好,我正在尝试将变量值插入字符串而不是符号% <? function SpacerBlocks($number_space, $parent, $children, $array, $inside, $position_start = 0) { $result = ''; $items = $result; for ($position_start; $position_start < count($array); $pos

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

<?
    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;
    }
    ?>
输出为:

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

你试过了吗

str_replace('%',$replaceForThis,$input);

您的
%
不正确。它需要是一个适当的格式说明符,例如

printf('Hello %s PHP', 'from')
               ^--string format
将从PHP向您提供
问候

您的printf字符串应该是:

SpacerBlocks(....., '<a href=""><span>%s</span>%s</a>');
                                      ^^       ^^---note the S's
间隔块(…..,'');
^^^^---注意S的

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

“无法正常工作”Becaaause。。。?你有错误吗?输出不是你想要的?输出是:谢谢!你告诉我我需要做什么!:)
printf('Hello %s PHP', 'from')
               ^--string format
SpacerBlocks(....., '<a href=""><span>%s</span>%s</a>');
                                      ^^       ^^---note the S's