짧은주소 정규표현식 질문 (preg_match) 채택완료
Modify
5년 전
조회 2,406
짧은 주소 (http://abc.kr/free) 사용 시 정규표현 함수(preg_match)의 정규표현식이 궁금합니다.
http://abc.kr/free 의 맨 뒤의 bo_table 값인 free만 가져오고 싶은데요.
모든 주소 공통점을 살펴보면 '/' 이 것이 3개가 들어있는데 '/' 이 3개를 건너뛴
정규표현식은 어떻게 쓰면 될까요?
댓글을 작성하려면 로그인이 필요합니다.
답변 2개
채택된 답변
+20 포인트
5년 전
url 이 그누보드가 설치된 사이트의 URL 이고 반드시 주어진 형태라면..
</p>
<p>$url = '<a href="http://abc.kr/free';" target="_blank" rel="noopener noreferrer">http://abc.kr/free';</a>
$bo_table = str_replace(G5_URL.'/', '', $url);</p>
<p>
그누보드가 설치된 사이트가 아니고... URL 이 주어진 형태라면..
</p>
<p>$url = '<a href="http://abc.kr/free';" target="_blank" rel="noopener noreferrer">http://abc.kr/free';</a></p>
<p>preg_match('#(https?:)?//([^/]+)/([^/^\?^\#]+)#', $url, $m);</p>
<p>$bo_table = ($m ? $m[3] : '');</p>
<p>
두번째 코드의 장점은... $url 이 약간 다른 형태여도 동작한다는 것입니다.
예를들면,
</p>
<p>$url = '<a href="https://abc.kr/free/1234';" target="_blank" rel="noopener noreferrer">https://abc.kr/free/1234';</a></p>
<p>$url = '<a href="http://abc.kr/free/1234';" target="_blank" rel="noopener noreferrer">http://abc.kr/free/1234';</a></p>
<p>$url = '//abc.kr/free/1234';</p>
<p>$url = '<a href="http://abc.kr/free/p2';" target="_blank" rel="noopener noreferrer">http://abc.kr/free/p2';</a> // 2 페이지</p>
<p>$url = '<a href="http://abc.kr/free?sca=&sfl=wr_subject||wr_content&stx=테스트';" target="_blank" rel="noopener noreferrer">http://abc.kr/free?sca=&sfl=wr_subject||wr_content&stx=테스트';</a> // 검색</p>
<p>
등의 URL 에 대해서도 정상 동작한다는거죠. ^^
로그인 후 평가할 수 있습니다
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인