我有以下php变量
$currentUrl
这个php变量返回当前的url页面。例如:它返回:
http://example.com/test-category/page.html?_ore=norn&___frore=norian
我可以使用哪些PHP代码将使用此网址链接并删除“ .html ”之后的所有内容,并返回一个干净的网址链接,例如:
http://example.com/test-category/page.html
这将在新变量 $ clean_currentUrl
中返回答案 0 :(得分: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
)
*/
?>
然后,您可以根据值构建所需的网址。
$clean_url = $url['scheme'].'://'.$url['host'].$url['path'];
答案 1 :(得分:1)
$parts = explode('?', $currentUrl);
$url = $parts[0];
答案 2 :(得分: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);