PHP,删除URL变量的一部分

Rad*_*duS 4 php

我有以下php变量

$currentUrl
Run Code Online (Sandbox Code Playgroud)

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

http://example.com/test-category/page.html?_ore=norn&___frore=norian
Run Code Online (Sandbox Code Playgroud)

我可以使用哪些PHP代码将获取此URL链接并删除" .html " 之后的所有内容,并将返回一个干净的URL链接,例如:

http://example.com/test-category/page.html
Run Code Online (Sandbox Code Playgroud)

这将在新变量$ clean_currentUrl中返回

Law*_*one 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
)
*/
?>
Run Code Online (Sandbox Code Playgroud)

然后,您可以从值构建所需的URL.

$clean_url = $url['scheme'].'://'.$url['host'].$url['path'];
Run Code Online (Sandbox Code Playgroud)

  • 这应该是公认的答案.这是工作的正确工具. (6认同)
  • 嗨TecBrat,确实,这也是正确的答案,我希望我能接受他们两个是正确的.我会将parse_url()和preg_match用于不同的目的.重要的想法是我了解了这两种解决方案 (2认同)