2011-12-28 2 views
0

PHP에서이 정규식 코드를 완성하는 데 어려움을 겪고 있습니다.PHP에서 regex를 사용하여 URL을 트리밍하는 방법은 무엇입니까?

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

에 :

showthread.php?tid=324 

친절 감사가에서 들어가도록 나는 변수 $ 텍스트에서 개최되는 다음 URL을 아래로 다듬을!

+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

관련 문제