PHP 는 페이지 의 주 소 를 정규 로 어떻게 캡 처 합 니까?

2341 단어 php정규 캡 처
머리말
링크 는 바로 하이퍼링크 로 하나의 요소(문자,이미지,동 영상 등)에서 다른 요소(문자,이미지,동 영상 등)로 연결된다.웹 페이지 의 링크 는 보통 세 가지 가 있 는데 하 나 는 절대 URL 하이퍼링크,즉 한 페이지 의 전체 경로 이다.다른 하 나 는 상대 적 인 URL 하이퍼링크 로 보통 같은 사이트 의 다른 페이지 에 연결된다.또 하 나 는 페이지 안의 하이퍼링크 인 데 이런 일반적인 링크 는 같은 페이지 안의 다른 위치 로 연결된다.
링크 의 종 류 를 알 면 링크 를 잡 아야 한 다 는 것 을 알 수 있 습 니 다.주로 절대 URL 하이퍼링크 와 상대 URL 하이퍼링크 입 니 다.정확 한 정규 표현 식 을 쓰 려 면 우리 가 찾 는 대상 의 패턴 을 알 아야 합 니 다.
절대 링크 를 먼저 말 하고 URL(Uniform Resource Locator)이 라 고도 부 르 며 인터넷 의 유일한 자원 을 표시 합 니 다.URL 의 구 조 는 프로 토 콜,서버 이름,경로 와 파일 이름 세 부분 을 포함한다.
프로 토 콜 은 브 라 우 저 에 게 파일 을 열 표 지 를 어떻게 처리 하 는 지 알려 주 는 것 입 니 다.가장 흔히 볼 수 있 는 것 은 http 프로 토 콜 입 니 다.본 고 는 HTTP 프로 토 콜 만 고려 하고 다른 https,ftp,mailto,telnet 프로 토 콜 등 은 필요 에 따라 추가 할 수 있다.
서버 이름 은 브 라 우 저 에 게 이 서버 에 어떻게 도착 하 는 지 알려 주 는 방식 입 니 다.보통 도 메 인 이름 이나 IP 주소 이 고 포트 번호(기본 값 은 80)도 포함 되 어 있 습 니 다.FTP 프로 토 콜 에 도 사용자 이름과 비밀 번 호 를 포함 할 수 있 으 므 로 본 고 는 고려 하지 않 습 니 다.
경로 와 파일 이름 은 일반적으로/분할 하여 이 파일 에 도착 하 는 경로 와 파일 자체 의 이름 을 가리킨다.구체 적 인 파일 이름 이 없 으 면 이 폴 더 의 기본 파일 에 접근 합 니 다(서버 에서 설정 할 수 있 습 니 다).
그렇다면 이제 캡 처 할 절대적 인 링크 의 전형 적 인 형식 은http://www.xxx.com/xxx/yyy/zzz.html각 부분 에서 사용 할 수 있 는 문자 범 위 는 명확 한 규범 이 있 으 며 구체 적 으로 RFC 1738 을 참고 할 수 있다.그러면 정규 표현 식 을 쓸 수 있 습 니 다.

/(http|https):\/\/([\w\d\-_]+[\.\w\d\-_]+)[:\d+]?([\/]?[\w\/\.]+)/i
설명 은 다음 과 같다.
(http|https)첫 번 째 괄호 안에 일치 하 는 것 은 프로 토 콜 부분 입 니 다.
([\w\d\-_]+[\.\w\d\-_]+)두 번 째 괄호 안에 일치 하 는 것 은 도 메 인 이름 부분 입 니 다.
([\/]?[\w\/\.]+)세 번 째 괄호 안에 일치 하 는 것 은 상대 경로 입 니 다.
이때 까지 쓰 면 기본적으로 대부분의 사이트 주소 가 일치 하지만 URL 에 인자 가 있 는 것 은 캡 처 할 수 없습니다.그러면 다시 방문 할 때 페이지 가 잘못 되 었 을 수 있 습 니 다.매개 변수 RFC 1738 규범 에 대한 요 구 는?분할 하고 뒤에 파 라 메 터 를 달 지만 현대 의 RIA 응용 은 다른 이상 한 형식 으로 분할 할 수 있다.
조금 만 수정 하면 조회 매개 변수 부분 을 검색 할 수 있 습 니 다.여기 에는 아직도 모든 상황 이 포함 되 어 있 지 않다.예 를 들 어 URL 에 중국어,빈 칸 과 다른 특수 문자 가 있 는 상황 이지 만 대체적으로 나의 수 요 를 만족 시 킬 수 있 고 계속 심화 되 지 않 았 다.

/(http|ftp|https):\/\/([\w\d\-_]+[\.\w\d\-_]+)[:\d+]?([\/]?[\w\/\.\?=&;%@#\+,]+)/i
괄호 를 사용 하 는 장점 은 결 과 를 처리 할 때 프로 토 콜,도 메 인 이름,상대 경로 등 내용 을 쉽게 얻 고 후속 처 리 를 편리 하 게 할 수 있다 는 것 이다.
예 를 들 어preg_match_all() 매 칭 을 사용 할 때 결과 배열 색인 0 은 전체 결과 이 고 1 은 프로 토 콜 이 며 2 는 도 메 인 이름 이 고 3 은 상대 경로 이다.
이상 은 PHP 를 사용 한 정규 캡 처 페이지 의 웹 주소 의 모든 내용 입 니 다.PHP 사용 에 도움 이 되 기 를 바 랍 니 다.

좋은 웹페이지 즐겨찾기