2009-08-26 6 views
0

저는 PHP로 가지고있는 필드에서 HTML을 허용하는 방법을 구현하고 있습니다. 문자는 입력 된대로 데이터베이스에 저장되므로 나중에 화면에 인쇄 할 때 HTML을 존중해야합니다 (여기서는 보안이 문제가되지 않으므로 하나도 만들지 마십시오). 지금 당장 필요한 것은 &quot; 인스턴스를 적절한 " 문자로 변경하는 것이지만, 이는 HTML 선언 (예 : <> 자) 내에있을 때만 가능합니다. 이러한 문자 안에 있지 않으면 변경해서는 안됩니다.두 개의 다른 특정 문자 안에있는 문자를 바꾸려면 어떻게 정규 표현식을 사용할 수 있습니까?

정규 표현식으로 이와 같은 작업을 수행하는 적절한 방법은 무엇입니까?

답변

2

이 시도 : <a href 시작 링크 발견

<[^>]*X[^>]*> 

실제적인 예를 들어, 내가 HTML 태그 안에 "무슨 뜻 수집하여 설명에서

$str = preg_replace('/&quot;(?=[^<>]*+>)/', '"', $str); 

"(선언은이 컨텍스트에서 실제로 아무 것도 의미하지 않습니다.) 나는 또한 어떤 '<' 또는 '>' 문자가 태그 안에있을 수 없다고 가정하고있다. (왜냐하면 그들은 이 인용 속성 값에서이기 때문이다).

앞 가리개 (?=[^<>]*+>)은 앞에 꺾쇠 괄호가 있으며 앞뒤에 꺾쇠 괄호가 없음을 나타냅니다. 모든 꺾쇠 괄호가 균형 쌍의 일부라고 가정하면 현재 위치가 HTML 태그 안에 있음을 의미합니다.

0

태그를 찾으려면 뭔가요? X은 문자이지만 문자열로 대체 될 수 있습니다.

<a href="([^"]*)"[^>]*>. 
관련 문제