Q&A

스킨에서 {$oDocument->getContent(false)}

 

본문을 불러와 보여주는데요. 가끔 회원분들중 과도한 엔터가 문서 하단에 들어간걸 그냥 보통 지우지 않으시는 경우가 있는데요.

스킨에서 본문을 불러오면서 내용의 끝부분에 위치한 반복되는 <p>&nbsp;</p> 를 제거해 버릴 수 있을까요 ??

 

 

댓글 59

  • @prologos
    안되던 문서도 저장을 다시 하면 됩니다. 신기하게요... ㅡㅡ;
  • @prologos
    안되는 문서는 저장된 파일에서

    <p> </p> 으로 공백이 처리되어 보이구요.


    되는 문서 저장된 파일의 줄바꿈 공백들은
    <p>&nbsp;</p>

    로 저장되어 있음이 확인 됩니다.

    어떠한 이유로 줄바꿈이 잠시 바뀌는 듯 합니다.
  • @prologos

    안되는 문서 저장된 파일입니다.

  • @prologos
    페이지가 넘어가서 다시 여기에 정리합니다.

    해시태그애드온과 관련성은 있어보입니다.
    뭔가 안되던게 다시 잘 되었던 건 "최고관리자 권한"의 계정으로 수정해서 되는 것으로 확인 되었습니다.

    잘 안되는 파일은 먼저 댓글에 첨부해 드렸습니다.

     

     

    해시태그온 애드온 사용시 일반계정으로 글 등록시 줄바꿈이

    <p> </p> 로 바뀌어 등록되는 듯 합니다. 

    최고관리자 계정으로 다시 수정하면 원래 줄바꿈으로 되는거 같구요.

     

    꼭 해시태그온 영향이 아니더라도 <p> </p>로 변해버리거나 작성된 줄바꿈이 처리되지 않는거니 이것 까지 처리되면 문제가 없어 보입니다.

     

  • 파일을 보니 원인을 알겠네요 ㅠㅠ
    어떤 애드온이나 모듈에서 글을 저장할때 utf encoding해서 저장하나 보네요. 공백이 변경되어있어서 여태 테스트한 정규식에서는 검출을 못한겁니다 ㅠㅠ

    '@(<\s*p\s*>([\xA0|\xC2|\s|&nbsp;])*<\s*\/p\s*>\s*)+$@i'

    이걸로 테스트 해보세요.
  • @prologos
    이거 혹시 이모티콘 사용하게 해주는 애드온이 관여하는 걸까요 ? @기진곰님... 아니겠죠 ????
  • 애드온 말고 스킨에서도 아래 코드로 테스트 해보세요

    {preg_replace('/(<\s*p\s*>[\xA0|\xC2|\s|&nbsp;]*<\s*\/p\s*>\s*)+<\s*\/div\s*>/i', '</div>', $oDocument->getContent(false))}
  • @prologos
    와!!!! 복받으실 겁니다. 정말 두가지 경우 다 처리가 되네요. 줄바꿈 공백이 두가지 타입으로 나오니 정말 이거 알아내는데 정말 힘들었네요. 정말 수고 많이 해주셨어요. 감사합니다.
  • @웹지기
    오늘 하루 XE공부는 이걸로 끝~~~~ ㅎㅎㅎ
    수고하셨어요.