안녕하세요. 그누보드를 이용해서 블로그를 만들고 있습니다.
리스트에서 내용을 출력하는 데 WP 처럼 상단 일부 내용만 출력하고 나머지는 뷰페이지에서 보게끔 하려고 합니다.
str_cut을 이용해서 100자로 컷하면 wr_content가 100자까지 표시되긴 하는데
마지막에 닫는 태그가 </.... 라던지 </p.... 로 잘려서 페이지 소스가 꼬이는 현상이 있습니다.
WP 처럼 태그 잘림없이 일부 단락? 문단?만 보여주려면 어떻게 해야할까요?
답변 5개 / 댓글 6개
echo preg_replace('#</?[^>]+$(?!>)#', '', cut_str($str, 100));
답변에 대한 댓글 3개
정규표현식 코드 공부한다고 했는데, 낯선 코드 보면 까막눈이 되네요.ㅋ.
답변해주신 세 분께 정말 진심으로 감사드립니다.
제가 원했던 답변은 wr_content에 에디터로 작성한 글 내용 중 <p></p> 열린 태그와 닫는 태그를 유지하고 글 내용 일부분만 잘라서 보여주는 것이었습니다.
모두 채택드리고 싶었지만 그래도 먼저 답변 해주신 슈와이님께 채택드렸습니다.
감사합니다.
스타일을 유지시키고 싶다면 CSS 의 text-overflow 속성을 사용하는 방법도 있습니다.
<!DOCTYPE html><html> <head> <style type="text/css"> .more { border: 1px solid orange; white-space: nowrap; width: 5.0em; height: 1.0em; overflow: hidden; text-overflow: ellipsis; /* text-overflow: clip; */ } </style> </head> <body> <div class="more"> 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> </div> </body></html>
답변에 대한 댓글 1개
태그 자체가 깨지는 것도 문제지만
<div>contents out<div>contents in<div>contents in in</div></div></div>
처럼 노드구조가 깨지는 문제도 생길것 같네요.
리스트에서 html 태그가 필요치 않다면
strip_tags 같은 함수로 태그자체를 제거 한다음
연산을 하는 것이 낫지 않나 싶습니다.
아니면 정규식 이나 DOM 관련 파싱으로의 추가작업이 필요할것 같습니다.
답변에 대한 댓글 1개
슈와이님의 방법이 제일 쉬운데요
비슷하지만 다른 방법으로 HTML entities 을 검색해보셔도 도움되실거에요
쉽게 말해서 html 에 영향을 받지 않는 문자 입니다.
원문 : HTML CODE <b>bold</b>
HTML entities : HTML CODE <b>bold</b>
답변에 대한 댓글 1개
답변을 작성하려면 로그인이 필요합니다.