嘿伙计们,你能告诉我如何剥离网站并只留下访问的页面吗?
我的代码:
$url = preg_replace('/^www\./', '', parse_url($url['url'], PHP_URL_HOST));
是:http://domain.com
还是http://www.domain.com
我需要它只给我后面的东西。
示例:index.php
或index.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);
}
答案 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'] : '');