如何删除网址

时间:2011-04-03 00:05:29

标签: php preg-replace

嘿伙计们,你能告诉我如何剥离网站并只留下访问的页面吗?

我的代码:

$url = preg_replace('/^www\./', '', parse_url($url['url'], PHP_URL_HOST));

是:http://domain.com还是http://www.domain.com

我需要它只给我后面的东西。

示例:index.phpindex.php?setlang=en

提前致谢。

编辑:

以下是我目前用于获取URLS的代码:

//Pagina
$from = $_GET['pagina'];
if( !empty($from) )
{
    $from = preg_replace('/^www\./', '', parse_url($from, PHP_URL_PATH));
}    

$url = $DB->fetch(
        "SELECT url FROM {$CONF['sql_prefix']}_sites WHERE username = '{$username}'",
        __FILE__,
        __LINE__
        );

$url = preg_replace( '/^www\./', parse_url( $url['url'], PHP_URL_PATH ) );
if( !empty ($from ) && $from != $url )
{
    insert('pagina', $from);
}

3 个答案:

答案 0 :(得分:2)

您已经使用parse_url;重用它怎么样?

$path = parse_url($url, PHP_URL_PATH);
$query = parse_url($url, PHP_URL_QUERY);
$url = $path . ($query ? '?' . $query : '');

答案 1 :(得分:0)

您告诉parse_url函数使用PHP_URL_HOST,它将始终返回您不想要的部分。

我从未使用过此功能,但也许可以尝试:

$tmp = parse_url($url['url']);
$url = $tmp['path'] . "?" . $tmp['query'] . "#" . $tmp['fragment'];

相反,它应该返回你想要的块,没有任何正则表达式

来自文档:parse-url

答案 2 :(得分:0)

您已使用parse_url,因此您可以使用此阵列获取您的信息:

$parsed_url = parse_url($url['url']);
$path = $parsed_url['path'].(isset($parsed_url['query']) ? '?'.$parsed_url['query'] : '');