我有一个简单的网址:
http://sample.com/?page=1&page=2
http://sample.com/?page=2&page=1
如何使用preg_replace()删除重复值(页面)
这是代码:
$link = preg_replace("/\b(\w+)\s+\\1\b/i", "$1", $link );
但是结果是错误的,我该如何解决它,结果如下所示:
http://sample.com/?page=1&page=2 => http://sample.com/?page=2
http://sample.com/?page=2&page=1 => http://sample.com/?page=1
您可以考虑递归子模式,而不是尝试使用反向引用。
$link = 'http://sample.com/?page=1&page=2';
$link = preg_replace('/\b(\w+=\d+)&((?1))/', '$2', $link);
echo $link; //=> "http://sample.com/?page=2"
使用反向引用,我想您可以做到:
$link = preg_replace('/\b(\w+=)\d+&(\1\d+)/', '$2', $link);
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句