如何修剪查询字符串的中间部分


How to trim middle section of query strings?

我想修改一些$_SERVER['QUERY_STRING']

$_SERVER['QUERY_STRING'] : "http://domain.com/blog/topics/post-name/uploads/flashfile.swf"
I want this output:        "http://domain.com/uploads/flashfile.swf"

因此,中间部分"博客/主题/帖子名称/"需要进行三聚。实际单词的变化取决于处理query_string的页面,尤其是帖子名称是不可预测的。我该如何修剪中间部分?

编辑:flashfile.swf只是一个例子,它可以是不同扩展名的不同名称

最简单的方法是,

$url = "http://domain.com/blog/topics/post-name/uploads/flashfile.swf";
$str = str_replace($url, 'blog/topics/post-name/', '');

这是一个动态的。

$p = parse_url($url);
$v = basename($url);
$d = basename(dirname($url));
$str = $p['scheme']."://". $p['host']."/$d/$v";
echo $str;
$parsed = parse_url( $_SERVER['QUERY_STRING'] );
$trimed = $parsed[ 'scheme' ] . '://' . $parsed[ 'host' ] . '/uploads/flashfile.swf';

您可以这样做:

$url = "http://domain.com/blog/topics/post-name/uploads/flashfile.swf";
$new_url = str_replace($url, 'blog/topics/post-name/', '');