PHP - 如何从URL中删除分页页面变量?

时间:2014-11-14 06:39:17

标签: php preg-replace

我尝试从网址中删除分页页面ID。例如,我的URL看起来像这样:

$urlVal = "http://192.168.1.233/sitename/property-list?page=13&page=11&sproperty=for sale&srooms=1,10&scity=&scountry=&lat=31.0000000&long=35.0000000&sprice=100,100000";

并且想要删除,如果任何匹配来自URL:

1. page=1
2. page=1&page=2
3. page=1&page=2$page=3
4. page=1&page=2$page=3$page=4

在我目前的分页代码中,每当页面被更改时,上一页都会进行仲裁,这就是我要删除所有页面的原因。

我已经使用过此代码,但效果不佳。

$urlVal = "http://192.168.1.233/sitename/property-list?page=13&page=11&sproperty=for sale&srooms=1,10&scity=&scountry=&lat=31.0000000&long=35.0000000&sprice=100,100000";

//$getUrl =$_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"];
$parts = parse_url($urlVal);
$urlVar = "";                   
$urlVar = $parts['query'];
echo $urlVar = preg_replace('/page=[0-9]&+/', '', $urlVar);

在此处试用我的代码:http://codepad.org/lSHV7a7w

我希望你明白我要做的事。

感谢。

2 个答案:

答案 0 :(得分:0)

试试这个。

$urlVal = "http://192.168.1.233/sitename/property-list?page=13&page=11&sproperty=for sale&srooms=1,10&scity=&scountry=&lat=31.0000000&long=35.0000000&sprice=100,100000";

$parts = parse_url($urlVal);
parse_str($parts['query'], $query);
unset($query['page']);
$newUrl = "{$parts['scheme']}://{$parts['host']}{$parts['path']}?" . http_build_query($query);

echo $newUrl;

// Regx Pattern
echo preg_replace('/&?page=[0-9]+&?/', '', $parts['query']);

答案 1 :(得分:0)

如何使用数字串联作为页面值?

$urlVal = "http://192.168.1.233/sitename/property-list?page=11,13&etc..."

缩短网址并简化删除参数:

$urlVar = preg_replace('/page=[0-9,]+&/', '', $urlVar);

您可以使用以下命令从网址中提取它们:

preg_match("/page=([0-9,]+)&/", $urlVal, $m);
$pages = explode(",", $m[1]);