4

我有以下 php 变量

$currentUrl

这个 php 变量返回我当前的 url 页面。例如:它返回:

http://example.com/test-category/page.html?_ore=norn&___frore=norian

我可以使用什么 php 代码来获取这个 url 链接并删除“ .html ”之后的所有内容,并返回一个干净的 url 链接,例如:

http://example.com/test-category/page.html

这将在新变量$clean_currentUrl中返回

4

3 回答 3

13

与 PHP 的parse_url()

<?php 
$url = "http://example.com/test-category/page.html?_ore=norn&___frore=norian";
$url = parse_url($url);

print_r($url);
/*
Array
(
    [scheme] => http
    [host] => example.com
    [path] => /test-category/page.html
    [query] => _ore=norn&___frore=norian
)
*/
?>

然后您可以根据这些值构建您想要的 url。

$clean_url = $url['scheme'].'://'.$url['host'].$url['path'];
于 2013-06-23T00:08:37.647 回答
1
$parts = explode('?', $currentUrl);
$url = $parts[0];
于 2013-06-23T00:08:21.927 回答
1

像这样的东西:

<?php
$currentUrl = 'http://example.com/test-category/page.html?_ore=norn&___frore=norian';

preg_match('~http:\/\/.*\.html~', $currentUrl, $matches);
print_r($matches);

请参阅下面的 amigura 评论。要处理这种情况,请更改正则表达式:

<?php
$currentUrl = 'http://example.com/test-category/page.html?_ore=norn&___frore=norian';

preg_match('~(http:\/\/.*\..+)\?~', $currentUrl, $matches);
print_r($matches);
于 2013-06-23T00:09:59.573 回答