짧은주소 정규표현식 질문 (preg_match) 채택완료

짧은 주소 (http://abc.kr/free) 사용 시 정규표현 함수(preg_match)의 정규표현식이 궁금합니다.

 

http://abc.kr/free 의 맨 뒤의 bo_table 값인 free만 가져오고 싶은데요.

모든 주소 공통점을 살펴보면 '/' 이 것이 3개가 들어있는데 '/' 이 3개를 건너뛴

정규표현식은 어떻게 쓰면 될까요?

답변 2개

채택된 답변
+20 포인트

url 이 그누보드가 설치된 사이트의 URL 이고 반드시 주어진 형태라면..

Copy
$url = 'http://abc.kr/free';
$bo_table = str_replace(G5_URL.'/', '', $url);

 

그누보드가 설치된 사이트가 아니고... URL 이 주어진 형태라면..

Copy
$url = 'http://abc.kr/free';

preg_match('#(https?:)?//([^/]+)/([^/^\?^\#]+)#', $url, $m);

$bo_table = ($m ? $m[3] : '');

 

두번째 코드의 장점은... $url 이 약간 다른 형태여도 동작한다는 것입니다.

예를들면,

등의 URL 에 대해서도 정상 동작한다는거죠. ^^

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

Copy
$test = explode('/', $row2['me_link']);

echo $test[3];

 

이렇게 해결했습니다.

정규식 표현 검증보다 속도가 괜찮을진 모르겠네요..

 

더 좋은 방법 아시는 분 있으시면 댓글 부탁드립니다!

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인
🐛 버그신고