2010-01-11 5 views
1

3 가지 다른 URL 유형과 일치시키는 방법을 찾으려고합니다. 그들은없이 단지 domain.com 경우다른 URL에 대한 PHP 정규식

  1. http://(www.)domain.com또는www.domain.com
  2. http://(www.)domain.com/image.jpg/.png/gif또는www.domain.com/image.jpg/.png/.gif
  3. http://(www.)youtube.com/watch?v=Li1zXaEYol8또는www.youtube.com/watch?v=Li1zXaEYol8

주, 나는 그들을 구문 분석하지 않으 http 또는 www.

내가 직면하고있는 문제는 모두 3 개 또는 심지어 2 개가 함께 작동하는 것입니다. 자동 링크를 수행하는 클래스가 있으므로 http : // 또는 www가있는 경우 자동으로 연결됩니다. 그것을 연결됩니다,하지만 난에 이미지를 넣을 경우, 그것은 같은 이미지의 URL에 대한 HTML을 구문 분석 : 쓰레기 :(

나는 또한 유튜브를 검색하고 싶은 것입니다

<img src="<a href="www.domain.com">domain.com</a>" /> 

URL을 입력 한 다음 URL을 소스 코드로 바꾸면 동영상이 URL 대신 표시됩니다. URL에서 ID를 추출하는 것으로 끝났지 만 대체 작업을 수행 할 수 없습니다.

사람들이 의견을 입력하는 주석 필드와 같은 텍스트 영역에서 작업하고, 따라서 URL 자동 링크, ​​이미지 및 YouTube 비디오 용 HTML 구문 분석이 좋은 이유는 무엇입니까?

데이터는 SQL 쿼리를 통해 표시되고 간단한 주석을 처리하기 위해 str_replace를 포함하는 $ comments [ 'message']가 출력됩니다.

도움을 주시면 감사하겠습니다. 여기

답변

1

당신은 이동 :

(?:http:\/\/www\.|http:\/\/|www\.)(?:youtube\.com\/watch\?v=(?:\w+)|domain\.com\/image.(?:jpg|png|gif)|domain\.com) 

또는과 구분 기호 : 당신은 test the above RegExs @ Robular

~(?:http:\/\/www\.|http:\/\/|www\.)(?:youtube\.com\/watch\?v=(?:\w+)|domain\.com\/image.(?:jpg|png|gif)|domain\.com)~i 

합니다.

URL이 원하지 않는 HTML 태그 안에 있는지 확인하려면 DOM 파서를 사용하는 것이 좋습니다.

또한 관련 질문 : How to mimic StackOverflow Auto-Link Behavior을 확인하십시오. 이 같은 것을 할 수있는 유튜브 교체에 관한


:

echo preg_replace('~youtube\.com\/watch\?v=(\w+)~i', 'embed code $1', $comments['message']); 
+0

이 매우 직선적이다. 어쨌든 그것을 올바르게 컴파일하기 위해 +1 :-P – Boldewyn