0

ページネーション要素の複数の URL を新しい URL に置き換えようとしています。

URL が 1 回出現する場合、つまり 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 に答える