preg_replace多个问题

时间:2009-10-14 01:56:44

标签: cakephp preg-replace

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

当网址出现一次,即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'))); 
    ?>

1 个答案:

答案 0 :(得分:4)

试试这个:

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

你的。+贪婪。换句话说,它正在吸收第一个/最后一个/页面之间的所有内容:。

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