PHP:url参数
我有一个关于在php中格式化URL参数的问题 第1页可以有以下两个urlPHP:url参数,php,redirect,get,string-formatting,Php,Redirect,Get,String Formatting,我有一个关于在php中格式化URL参数的问题 第1页可以有以下两个url http://somewhere.com/page1.php?foo=1 and http://somewhere.com/page1.php 现在在第1页,当我点击一个按钮时,我希望它重定向到它自己,但是URL中有一个额外的参数,如下所示 http://somewhere.com/page1.php?foo=1&bar=2 or http://somewhere.com/page1.php?bar=2 取决于
http://somewhere.com/page1.php?foo=1
and
http://somewhere.com/page1.php
现在在第1页,当我点击一个按钮时,我希望它重定向到它自己,但是URL中有一个额外的参数,如下所示
http://somewhere.com/page1.php?foo=1&bar=2
or
http://somewhere.com/page1.php?bar=2
取决于当前的url。如何在php中实现这一点
谢谢,
Vidhu以下表单将提交到添加了参数的同一url
<form action="<?php echo "http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']; ?>" method="get">
<?php
// Iterate through our query string and add each key value pair as a hidden input
foreach ($_GET as $key => $value)
{
?>
<input type="hidden" name="<?php echo $key; ?>" value="<?php echo $value; ?>"/>
<?php
}
?>
<!-- new parameter to add -->
<input type="hidden" name="foo" value="1"/>
<input type="submit"/>
</form>
以下表单将提交到添加了参数的同一url
<form action="<?php echo "http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']; ?>" method="get">
<?php
// Iterate through our query string and add each key value pair as a hidden input
foreach ($_GET as $key => $value)
{
?>
<input type="hidden" name="<?php echo $key; ?>" value="<?php echo $value; ?>"/>
<?php
}
?>
<!-- new parameter to add -->
<input type="hidden" name="foo" value="1"/>
<input type="submit"/>
</form>
首先,使用isset
如果是,回显某个链接。如果没有,则回显另一个链接
if( !isset($_GET['bar']) ){
echo '<a href="?bar=2">link</a>';
}
else{
echo '<a href="page1.php">link</a>';
}
if(!isset($\u GET['bar'])){
回声';
}
否则{
回声';
}
首先,使用isset
检查是否设置了某个$\u GET
参数
如果是,回显某个链接。如果没有,则回显另一个链接
if( !isset($_GET['bar']) ){
echo '<a href="?bar=2">link</a>';
}
else{
echo '<a href="page1.php">link</a>';
}
if(!isset($\u GET['bar'])){
回声';
}
否则{
回声';
}
您可以执行一个简单的get系统,因此您需要检查是否设置了?foo=1
,如果设置了,您可以回显其内容。如果要显示bar=2
的内容,请检查其是否已设置并回显其内容。这只是一个简单的方法,还有更多的方法。您可以执行一个简单的get系统,因此您需要检查是否设置了?foo=1
,如果设置了,您可以回显其内容。如果要显示bar=2
的内容,请检查其是否已设置并回显其内容。这只是一个简单的方法,还有更多的方法。只需使用$\u服务器['PHP\u SELF']
比如说
<form action="<?php echo htmlentities($_SERVER['PHP_SELF']); ?>" method="get">
<input type="hidden" name="foo" value="1"/>
<input type="submit"/>
</form>
只需使用$\u服务器['PHP\u SELF']
比如说
<form action="<?php echo htmlentities($_SERVER['PHP_SELF']); ?>" method="get">
<input type="hidden" name="foo" value="1"/>
<input type="submit"/>
</form>
我正在使用这些PHP函数来帮助我正确构建URL:
parse_str()
parse\u url()
http\u build\u query()
http-build-url()
例如:
<?php
function add_parameters($parameters) {
parse_str($_SERVER['QUERY_STRING'], $old_parameters_as_array);
return $_SERVER['PHP_SELF'].'?'.http_build_query(array_merge($old_parameters_as_array, $parameters));
}
echo '<a href="'.add_parameters(array('bar' => 2)).'">Link</a>';
我正在使用这些PHP函数来帮助我正确构建URL:
parse_str()
parse\u url()
http\u build\u query()
http-build-url()
例如:
<?php
function add_parameters($parameters) {
parse_str($_SERVER['QUERY_STRING'], $old_parameters_as_array);
return $_SERVER['PHP_SELF'].'?'.http_build_query(array_merge($old_parameters_as_array, $parameters));
}
echo '<a href="'.add_parameters(array('bar' => 2)).'">Link</a>';
查看print\r($\u SERVER)的输出;查看print\u r($\服务器)的输出;我原以为这也行,但当您提交表单时,操作中的查询字符串将被删除。@Samuel Ya,这是真的,它将被替换。感谢您指出了这一点。我原以为这也行,但当您提交表单时,操作中的查询字符串将被删除。@Samuel Ya,这是真的,它将被替换。感谢你指出了这一点。