preg_replace&正则表达帮助

时间:2011-09-08 06:15:33

标签: php regex

一段时间以前,一位朋友帮助我们使用了这一行代码,我正试图让它为此工作:

$curPageUrl = "http://www.site.com/index.php?sort=a";
$currentPage = preg_replace("/&sort=\w+/", "", $curPageUrl);
echo $currentPage; // http://www.site.com/index.php?sort=f?sort=a?sort=z

例如,$curPageUrl获取他们所在的客户页面,然后通过它。

基本上,我们希望$currentPage剥离:

?sort=a
?sort=f
?sort=z
来自$curPageUrl

我希望我的榜样有所帮助。

谢谢。

3 个答案:

答案 0 :(得分:3)

preg_replace("/(\?|\&)sort=\w+/", "", $curPageUrl);

它会接受'&'或'?'。

答案 1 :(得分:2)

<?php
$tests = array(
    "http://www.site.com/index.php",
    "http://www.site.com/index.php?sort=a",
    "http://www.site.com/index.php?foo=bar&sort=a",
    "http://www.site.com/index.php?foo=bar&sort=a&bla=baz",
    "http://www.site.com/index.php?sort=a&bla=baz"
);
foreach($tests as $test) {
    echo preg_replace(
        array('@\?sort=[^&]*@', '@&sort=[^&]*@'),
        array('?', ''),
        $test
    );
    echo PHP_EOL;
}

答案 2 :(得分:1)

preg_replace("/\?sort=\w+/", "", $curPageUrl);

相关问题