이전 버전의 WYSIWYG 편집기를 최신 버전으로 업그레이드했습니다. 이미지 크기가 저장되는 방법에는 차이가 있습니다. 이전 버전의 편집기는 이미지 태그에 너비 및 높이 매개 변수를 추가하는 데 사용되었습니다. 새 편집기는 스타일 매개 변수를 만들고 폭 및 높이를 스타일로 추가합니다.preg_replace all <img> 매개 변수
주위에 <a>
태그를 래핑 할 수 있도록 사용하는 preg_replace 함수가 있습니다.
새 preg_replace가 스타일 매개 변수의 너비와 높이를 저장하므로 더 이상 작동하지 않습니다.
레그로 대체 :
$Content = preg_replace('#<img(.*?)src="([^"]*/)?(([^"/]*)\.[^"]*)"([^>]*?)>((?!</a>))#', '<a rel="group" class="fancybox fancy" title="" href="$2$3"><img$1src="$2$3"></a>', $Content);
잘 알고,이 같은 새로운 에디터를 저장 이미지 :
<img alt="" src="" style="" />
반면이 같은 이전 편집기 저장된 이미지 :
<img src="" width="404" height="228" alt="" />
어떻게하면 전체 스타일 요소도 복사하도록 내 preg_replace를 리팩터링 할 수 있습니까? 이전 버전과의 호환성도 좋을 것입니다. 시간에 대한
감사합니다 :)
당신은 할 모든 요소와 일치 할 수 있습니다 파싱 한 다음 원본 일치 배열을 사용하여 이전 구문을 바꿉니다. 필요한 것은 preg_match를 정규식으로 몇 줄의 코드로 확장하는 것입니다. – baldrs
이런 종류의 일을하기 위해 정규 표현식 대신 DOM 파서를 사용하는 것이 좋습니다. – Spudley
** 정규식을 사용하여 HTML을 구문 분석하지 마십시오 **. 정규식으로 HTML을 안정적으로 구문 분석 할 수는 없으며 슬픔과 좌절을 당할 것입니다. HTML이 예상과 다르게 변경되면 코드가 손상됩니다. 이미 작성, 테스트 및 디버깅 된 PHP 모듈을 사용하여 HTML을 올바르게 구문 분석하는 방법에 대한 예제는 http://htmlparsing.com/php를 참조하십시오. –