긴 위키 페이지에서 자주 검토하고 변경해야하는 html, 사용자 정의 코드 및 일반 텍스트가 혼합되어 있습니다. 저는 독점적 인 위키와 같은 응용 프로그램을 사용하고 있으며 응용 프로그램의 기능 또는 사용자 입력의 유효성 검사 방법을 제어 할 수 없습니다. 사용자가 추가하는 페이지의 레이아웃은 매우 특정한 표준 레이아웃을 따라야하며 항상 자주 변경되는 표준 인 특정 장소에만 매우 특정한 텍스트를 포함해야합니다. 사용자가 표준을 벗어난 페이지를 추가하면 해당 페이지가 삭제됩니다.Preg_replace regex, newlines, connection resets
저는 이러한 페이지를 모두 수동으로 교정하고 교정 할 수있는 자원이 없기 때문에 자동화가 유일한 해결책입니다. 사실이 모든 것이 분명히 여기에 필요한 것을 수행 할 대체 플랫폼이 이미 이해되어있는 시간 낭비입니다.
필자는이 post-validation과 자주 restandardization 과정을 자동화하기 위해 PHP 기반 API를 구축했습니다. 나는이 모든 혼합 된 텍스트를 처리 할 수있는 정규식 패턴을 설정할 수 있었으며 모든 단일 행을 처리 할 때 잘 작동합니다. 내가 가진 문제는 이것이다 : 줄 바꿈으로 긴 텍스트에 대한 정규 표현식이 형성되지 않으면 연결 재설정과 같은 예기치 않은 결과가 발생할 수있다. 문제 해결을 위해 서버 측 로그에 대한 액세스 권한이 없습니다. 어떻게 이것을 극복 할 수 있습니까?
이것은 내가 현재 가지고있는 것의 한 예일뿐입니다. 아래에서 찾고있는 {column} 및 {section} 태그는 원하는 수의 속성을 가질 수 있으며 텍스트를 포함 할 수 있습니다. {section}은 존재할 수도 있고 존재하지 않을 수도 있고 {column} 아래에 하나 이상의 행이 될 수도 있고 그렇지 않을 수도 있지만 {column} 안에 싸여 있어야합니다. {column} 자체가 존재할 수도 있고 존재하지 않을 수도 있으며, 그렇지 않은 경우 나중에 스크립트 아래에 기본 텍스트가 삽입되어 있으므로 걱정하지 않아도됩니다. 내부 섹션 내용을 잡고 대신 HTML div 태그로 묶고 싶습니다.
$pattern = "/\{column:id=summary([|]?([a-zA-Z0-9-_ ]+[:][a-zA-Z0-9-_ ]+[ ]?))\}(.*)({section([|]([a-zA-Z0-9-_ ]+[:][a-zA-Z0-9-_ ]+[ ]?))\}(.*)\{section\}(.*))?{column\}/s"; $replacement = "{html}<div id='summary'>$7</div>{html}"; $text = preg_replace($pattern, $replacement, $subject);는 {열} 처리하고 {절} 속성과 새로운에만 유효한 HTML 매개 변수를 전달 ... 나는 순간에 즉석를 사용하고 정확한 패턴을 기억하지 수 있지만, 그것은 충분히 가까이 html div 또는 그 하위 텍스트 자체는 문제이지만 현재 당장의 주요 관심사는 연결 재설정을하지 않고 위 {section} 내에서 (. *) 값을 얻는 것입니다. 어떤 포인터?