0

我正在尝试用新的 url 替换分页元素中的多个 url。

当 url 出现一次时,替换工作正常,即 prev 和 next,但它会在分页号上中断。它将第一个和最后一个数字链接放在一起。如何让 preg_replace 函数意识到需要替换的链接多次出现?

<?php 
    $pattern = '/\/(.+)\/page:(\d)/S';
        $replacement = $uurl.'page:$2';
        echo preg_replace($pattern, $replacement,$paginator->prev('<< '.__('previous', true), array('url' => $paginator->params['pass']), null, array('class'=>'disabled'))).' | ';
        echo preg_replace($pattern, $replacement,$paginator->numbers());
        echo preg_replace($pattern, $replacement,$paginator->next(__('next', true).' >>', array('url' => $paginator->params['pass']), null, array('class'=>'disabled'))); 
    ?>
4

1 回答 1

4

尝试这个:

$pattern = '/\/(.+?)\/page:(\d)/S';

你的 .+ 是贪婪的。换句话说,它吸收了第一个 / 和最后一个 /page: 之间的所有内容。

这 ?运算符将使其匹配最小值。

于 2009-10-14T02:09:40.030 回答