页面:/index.php? page = 6&test = 1&test2 = 2
下面条的代码页= 6的关闭此这样我就可以添加我们的新页面的URL,然后再添加$ url_without_page_var回到我们的链接:
$_SERVER['argv'][0]
// Displays: page=6&test=1&test2=2
Run Code Online (Sandbox Code Playgroud)
和
$url_without_page_var=preg_replace('/page=(\d+)/i','',$_SERVER['argv'][0]);
// Displays: &test=1&test2=2
Run Code Online (Sandbox Code Playgroud)
好了,这样的代码让我把页面= 6关闭的页面= 6&测试= 1&测试2 = 2 然后我就可以改变页数,并添加这一切重新走到一起.
我的问题通常是URL中的页面并不总是处于相同的位置,它可能不是第一个或最后一个项目这是将发生的情况,现在看看URL是如何不正确的;
/page.php?&**test = 1&test2 = 2**ERROR-HERE-ALSO page = 9
该$_GET变量提供了通过URL设置的所有变量的数组.$_REQUEST是所有GET和POST变量集的数组.这是鱼:
$url_string = "index.php?";
foreach( $_GET as $k => $v ){
if( $k != "key_you_dont_want"){ // <-- the key you don't want, ie "page"
if( $url_string != "index.php?" )
$url_string .= "&"; // Prepend ampersands nicely
$url_string .= $k . "=" . $v;
}
}
Run Code Online (Sandbox Code Playgroud)
正则表达式对这个问题有点矫枉过正.希望它有意义.过去几周我一直在编写Python和Javascript.PHP感觉就像倒退了一步.
编辑:这段代码让我更开心.我实际测试过它而不是盲目地打字和交叉手指.
unset( $_GET["page"] );
$c = count($_GET);
$amp = "";
$url_string = "test.php";
if( $c > 0 ) {
$url_string .= "?";
foreach( $_GET as $k => $v ){
$url_string .= $amp . $k . "=" . $v;
$amp = "&";
}
}
Run Code Online (Sandbox Code Playgroud)