테스트 사이트 - 개발 중인 베타 버전입니다

글자 자르기할 때 태그가 안잘리게 하려면 어떻게 해야하나요? 채택완료

탬니 8년 전 조회 3,852

안녕하세요. 그누보드를 이용해서 블로그를 만들고 있습니다.

리스트에서 내용을 출력하는 데 WP 처럼 상단 일부 내용만 출력하고 나머지는 뷰페이지에서 보게끔 하려고 합니다.

str_cut을 이용해서 100자로 컷하면 wr_content가 100자까지 표시되긴 하는데

마지막에 닫는 태그가

WP 처럼 태그 잘림없이 일부 단락? 문단?만 보여주려면 어떻게 해야할까요?

댓글을 작성하려면 로그인이 필요합니다.

답변 5개

채택된 답변
+20 포인트
8년 전

echo preg_replace('#]+$(?!>)#', '', cut_str($str, 100)); 

로그인 후 평가할 수 있습니다

답변에 대한 댓글 3개

탬니
8년 전
답변 감사합니다. 해당 소스 적용하니까 닫는 태그를 삭제시켜서 페이지 꼬이는 증상이 동일하네요.ㅠㅠ
슈와이
8년 전
echo preg_replace('#</?[^>]+$(?!>)#', '', html_entity_decode(cut_str($list[$i]['wr_content'], 100)));
s
sinbi
8년 전
슈와이 님, 혹시, </?[^>]+$(?!>) 이 부분 의미가 뭔지 알 수 있을까요?
정규표현식 코드 공부한다고 했는데, 낯선 코드 보면 까막눈이 되네요.ㅋ.

댓글을 작성하려면 로그인이 필요합니다.

f
8년 전

답변해주신 세 분께 정말 진심으로 감사드립니다.

제가 원했던 답변은 wr_content에 에디터로 작성한 글 내용 중

열린 태그와 닫는 태그를 유지하고 글 내용 일부분만 잘라서 보여주는 것이었습니다.

모두 채택드리고 싶었지만 그래도 먼저 답변 해주신 슈와이님께 채택드렸습니다.

감사합니다.

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

8년 전

스타일을 유지시키고 싶다면 CSS 의 text-overflow 속성을 사용하는 방법도 있습니다.

</p><p><!DOCTYPE html></p><p><html></p><p>    <head></p><p>        <style type="text/css"></p><p>        .more {</p><p>            border: 1px solid orange;</p><p>            white-space: nowrap;</p><p>            width: 5.0em;</p><p>            height: 1.0em;</p><p>            overflow: hidden;</p><p>            text-overflow: ellipsis;</p><p>            /* text-overflow: clip; */</p><p>        }</p><p>        </style></p><p>    </head></p><p>    <body></p><p>        <div class="more"></p><p>            1<font color="#e67e22">23<b>4</b></font><b>5<i>6</i></b><i>78</i>90<div>1234<font color="#e67e22">567</font>890</div><div>1234567<font color="#e67e22">890</font></div></p><p>        </div></p><p>    </body></p><p></html></p><p>

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

탬니
8년 전
답변 감사합니다. PHP로 해결이 안되면 CSS로 해야겠습니다. ㅠㅠ

댓글을 작성하려면 로그인이 필요합니다.

8년 전

태그 자체가 깨지는 것도 문제지만

contents out
contents in
contents in in
 

처럼 노드구조가 깨지는 문제도 생길것 같네요.

리스트에서 html 태그가 필요치 않다면

strip_tags 같은 함수로 태그자체를 제거 한다음

연산을 하는 것이 낫지 않나 싶습니다.

아니면 정규식 이나 DOM 관련 파싱으로의 추가작업이 필요할것 같습니다.

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

탬니
8년 전
답변 감사합니다. wr_content 내용에 적용된 태그나 줄바꿈 등 스타일을 유지 시키고 싶어서 그렇습니다! 좀 더 알아봐야 겠습니다.

댓글을 작성하려면 로그인이 필요합니다.

슈와이님의 방법이 제일 쉬운데요

비슷하지만 다른 방법으로 HTML entities 을 검색해보셔도 도움되실거에요

쉽게 말해서 html 에 영향을 받지 않는 문자 입니다.

원문 : HTML CODE bold

HTML entities : HTML CODE <b>bold</b>

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

탬니
8년 전
답변 감사합니다. wr_content 내용에 적용된 태그나 줄바꿈 등 스타일을 유지 시키고 싶은데 HTML entities를 적용하니 태그가 그대로 보여지네요.ㅠㅠ

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인