짧은주소 정규표현식 질문 (preg_match)

짧은주소 정규표현식 질문 (preg_match)

QA

짧은주소 정규표현식 질문 (preg_match)

본문

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

 

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

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

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

이 질문에 댓글 쓰기 :

답변 2

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


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

 

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


$url = 'http://abc.kr/free';
preg_match('#(https?:)?//([^/]+)/([^/^\?^\#]+)#', $url, $m);
$bo_table = ($m ? $m[3] : '');

 

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

예를들면,


$url = 'https://abc.kr/free/1234';
$url = 'http://abc.kr/free/1234';
$url = '//abc.kr/free/1234';
$url = 'http://abc.kr/free/p2'; // 2 페이지
$url = 'http://abc.kr/free?sca=&sfl=wr_subject||wr_content&stx=테스트'; // 검색

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


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

 

이렇게 해결했습니다.

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

 

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

답변을 작성하시기 전에 로그인 해주세요.
전체 123,732 | RSS
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT