如何将给定网址转换为基本网址? 这意味着如果我有“http://test.com/folder/it.html?gsa=5”,脚本应返回“http://test.com/folder/”。
我试过了:
preg_match('~.*/~', $cur_url, $match);
$base=($match[0]=='http://') ? $cur_url : $match;
效果不好。
答案 0 :(得分:2)
尝试parse_url
来自php.net的样本
<?php $url = 'http://username:password@hostname/path?arg=value#anchor';
print_r(parse_url($url));
echo parse_url($url, PHP_URL_PATH); ?>
返回
Array
(
[scheme] => http
[host] => hostname
[user] => username
[pass] => password
[path] => /path
[query] => arg=value
[fragment] => anchor
)
/path
答案 1 :(得分:0)
使用正则表达式字符串,保持.com前进的所有内容。只需进行设置即可使用任何可能的站点结尾。将很快用样本字符串更新。
- 编辑 -
这个php正则表达式字符串用于从任何URL获取基本地址(已经过测试)。
![a-zA-Z]+(.com/|.ca/|.gov/)!
注意:此字符串设置为仅适用于.com,.ca和.gov域,但您可以在括号中添加其他字符,将它们分隔为|。
- 编辑 -
重读你的帖子,我设计了另一个字符串,如果你想要url中的所有内容,除了最后的文件。
!([a-zA-Z]*+(.com/|.ca/|.gov/))+([a-zA-Z/]*[/])!
注意:如果你在末尾没有文件的网址上使用它,那么该目录必须保留斜线,否则最后一个目录也将被剪切。
答案 2 :(得分:0)
好吧,如果你想从网址
中删除$ _GET变量 ?hello=somethin&something=somethingelse
以下内容可能有效:
$fullurl = $_SERVER['REQUEST_URI'];
$urlarray = explode($fullurl, "?");
$urlnoget = $urlarray[0];
会将url爆炸成每个位?而且没有?在一个实际的文件/ fooledr名称中,它将清除$ _GET网址。
您是否考虑过使用JavaScript?
很抱歉,如果有更简单的方法,但这就是我所知道的。