我在 Powerpoint 演示文稿中有一些链接,出于某种原因,当这些链接被点击时,它会在 URL 中添加一个返回参数。好吧,那个返回参数导致我的 Joomla 站点的 MVC 模式搞砸了。
使用 PHP 去除此返回参数的有效方法是什么?
示例: http://mydomain.example/index.php?id=115&Itemid=283&return=aHR0cDovL2NvbW11bml0
原文由 tpow 发布,翻译遵循 CC BY-SA 4.0 许可协议
我在 Powerpoint 演示文稿中有一些链接,出于某种原因,当这些链接被点击时,它会在 URL 中添加一个返回参数。好吧,那个返回参数导致我的 Joomla 站点的 MVC 模式搞砸了。
使用 PHP 去除此返回参数的有效方法是什么?
示例: http://mydomain.example/index.php?id=115&Itemid=283&return=aHR0cDovL2NvbW11bml0
原文由 tpow 发布,翻译遵循 CC BY-SA 4.0 许可协议
要使用 PHP 脚本从 url 中删除任何参数,您需要遵循以下脚本:
function getNewArray($array,$k){
$dataArray = $array;
unset($array[$k]);
$dataArray = $array;
return $dataArray;
}
function getFullURL(){
return (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on' ? "https" : "http") . "://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";
}
$url = getFullURL();
$url_components = parse_url($url);
// Use parse_str() function to parse the
// string passed via URL
parse_str($url_components['query'], $params);
print_r($params);
<ul>
<?php foreach($params as $k=>$v){?>
<?php
$newArray = getNewArray($params,$k);
$parameters = http_build_query($newArray);
$newURL = $_SERVER['PHP_SELF']."?".$parameters;
?>
<li><?=$v;?> <a href="<?=$newURL;?>">X</a>
<?php }?>
</ul>
原文由 Acnosoft 发布,翻译遵循 CC BY-SA 4.0 许可协议
1 回答4k 阅读✓ 已解决
3 回答1.8k 阅读✓ 已解决
2 回答2.2k 阅读✓ 已解决
1 回答1.4k 阅读✓ 已解决
2 回答2.2k 阅读
1 回答572 阅读✓ 已解决
785 阅读
最安全的“正确”方法是:
parse_url()
将 url 解析为数组parse_str()
将其分解为数组unset()
从数组中删除你想要的查询参数http_build_query()
重建原始网址快速而肮脏的是使用字符串搜索/替换和/或正则表达式来杀死值。