2010-08-10 5 views
0

안녕하세요, 저는 최근 BB 코드를 사용하여 사람들이 링크를 입력 할 때 문제를 발견했습니다. 이 변환 코드가BB 코드 조작을 중지하는 방법은 무엇입니까?

[LINK]http://www.domain.com 'span style="color:red;"'[/LINK] 

:

가 빨간색 링크 색을 만들기 위해이 같은 뭔가를 입력 할 수 있습니다 그러나

[LINK]http://www.domain.com[/LINK] 

:

그들은 뭔가를 입력하기위한 것입니다

$text = preg_replace("/\\[LINK\\\](.*?)\\[\/LINK\\]/is", 
         "<a href='$1' target='_blank'>$1</a>", $text); 

도 잊어 버렸습니다. 그는 다른 유형 :

[LINK=http://www.domain.com]example text[/LINK] 

$text = preg_replace("/\\[LINK\=(.*?)\\\](.*?)\\[\/LINK\\]/is", 
         "<a href='$1' target='_blank'>$2</a>", $text); 

답변

0

허용하지 마십시오 지수 및 첫 번째 패스 실패 URL에 같은 스트립 태그 :

당신의 손님이 충분히 똑똑 특히, 매우 위험
$text = preg_replace("/\[LINK\]([^'\"\\s]*?)\[\/LINK\]/is", 
           "<a href='$1' target='_blank'>$1</a>", $text); 

$text = preg_replace("/\[LINK\](.*?)\[\/LINK\]/is", "<i>(link removed)</i>", $text); 
+0

감사합니다. 훌륭한 작품입니다! – Mike

+0

제 질문에 두 번째 유형에 대한 해결책을 제공해주십시오. – Mike

+0

나는 다음과 같이 말하고 싶다. 모든 재료가 있습니다. 막히면 새로운 질문을 올리십시오. – mvds

0

onclick 핸들러를 링크에 추가하기 시작합니다.

mvds가 말한 것처럼 모든 인용문과 아포스트로피를 바꾸십시오. 살균 처리는 필수적입니다.

그러나이 특정 URL 문제에 대해서는 반드시 도움이되지는 않습니다. 그러나 실제 URL에서 잘못된 코드 수정자를 제거하는 정규식 URL 유효성 검사기가 많이 있습니다.