如何在PHP中使用正则表达式修剪URL?

时间:2011-12-28 19:49:29

标签: php regex

我正在努力用PHP完成这个正则表达式代码。我想减少以下的url,它保存在变量$ text中,以便它来自:

 http://www.site.net/showthread.php?tid=324&pid=...

到:

 showthread.php?tid=324

谢天谢地!

2 个答案:

答案 0 :(得分:1)

为什么要使用正则表达式? parse_url方法应该为您提供所需的一切:http://php.net/manual/en/function.parse-url.php

编辑:工作示例

$someurl = 'http://www.site.net/showthread.php?tid=324&pid=...';
$urlParts = parse_url($someurl, PHP_URL_PATH | PHP_URL_QUERY);
$params = parse_str($urlParts['query']);
unset($params['pid']);
$queryString = http_build_query($params);
$newUrl = $urlParts['path'] . '?' . $queryString;

由于$ urlParts ['path']以/开头而你不想要,你甚至可以使用

$newUrl = substr($newUrl, 1);

并且完成了:)这有帮助吗?

答案 1 :(得分:0)

这应该这样做:

$url = 'http://www.site.net/showthread.php?tid=324&pid=...';
$pattern = "/showthread.php\?tid=[0-9]+/";

if (preg_match($pattern, $url, $match))
    print_r($match);