2011-12-28 2 views
0

私はこの正規表現コードをPHPで完成させるのに苦労しています。PHPでregexを使用してURLをトリミングする方法はありますか?

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

:私はそれから行くように、変数$テキストに保持されている次のURLをダウントリムしたい

showthread.php?tid=324 

親切にありがとうございます!

+0

'&'、それは特別な意味を持ちませんエスケープする必要はあります。 PHPは既にURL解析ライブラリを持っていませんか? – fge

+0

@fgeはい、そうです^ _^ – Neal

+0

URLからファイル名を抽出したいのですか、hrefを抽出するアンカーを含むHTMLスニペットがありますか?あなたはあなたの質問にお答えしました。 –

答えて

1

なぜ正規表現を使用しますか? http://php.net/manual/en/function.parse-url.php

編集:$ urlPartsは[「パス」]で始まる/そして、あなたはそれをしたくなかったので作業例

$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; 

、あなたも使用できる場合でもparse_url方法は、あなたが望むあなたにすべてを与える必要があります

$newUrl = substr($newUrl, 1); 

となります:)それはまったく役に立ちますか?

+0

こんにちは、はい、それは簡単なソリューションですありがとうございます。しかしながら! Pidはtid(私が見ることができる)から分割されません。 – user1088793

+0

そのためにhttp://php.net/manual/en/function.parse-str.phpを使うことができます:) – Pelshoff

+0

@ user1088793 '&' – fge

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); 
+0

成功したgracias! – user1088793

関連する問題