将给定的URL转换为基本URL

时间:2012-08-23 18:56:49

标签: php url base

如何将给定网址转换为基本网址? 这意味着如果我有“http://test.com/folder/it.html?gsa=5”,脚本应返回“http://test.com/folder/”。

我试过了:

preg_match('~.*/~', $cur_url, $match);
$base=($match[0]=='http://') ? $cur_url : $match;

效果不好。

3 个答案:

答案 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?

很抱歉,如果有更简单的方法,但这就是我所知道的。