-1

How can I convert a given url to a base url? That means if I have "http://test.com/folder/it.html?gsa=5", the script should return "http://test.com/folder/".

I tried:

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

Doesn't work good.

4

3 回答 3

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
于 2012-08-23T19:03:14.297 回答
0

好吧,如果您想从 url 中删除 $_GET 变量

?hello=somethin&something=somethingelse

以下可能有效:

$fullurl = $_SERVER['REQUEST_URI'];
$urlarray = explode($fullurl, "?");
$urlnoget = $urlarray[0];

这会将每个网址分解成位?没有?在实际的文件/fooledr 名称中,因此它将清除 $_GET url。

你考虑过使用 JavaScript 吗?

对不起,如果有更简单的方法,但这是我所知道的。

于 2012-08-23T21:33:35.413 回答
0

使用正则表达式字符串来保留 .com 的所有内容。只需设置它,以便可以使用任何可能的站点结尾。将很快更新示例字符串。

- 编辑 -

此 php 正则表达式字符串可用于从任何 url 获取基地址(经过测试)。

![a-zA-Z]+(.com/|.ca/|.gov/)!

注意:此字符串设置为仅适用于 .com、.ca 和 .gov 域,但您可以将其他字符串添加到用 | 分隔它们的括号中。

- 编辑 -

重读您的帖子,如果您想要 url 中的所有内容,除了最后的文件,我已经设计了另一个字符串。

!([a-zA-Z]*+(.com/|.ca/|.gov/))+([a-zA-Z/]*[/])!

注意:如果您将它与末尾没有文件的 url 一起使用,则该目录必须仍然有斜杠,否则最后一个目录也将被剪切。

于 2012-08-23T19:01:49.547 回答