Rich Content와 SyntaxHighlighter

매출이 오르면 내리는 수수료! 지금 수수료센터에서 전자결제(PG)수수료 비교견적 신청해 보세요!
Rich Content와 SyntaxHighlighter

QA

Rich Content와 SyntaxHighlighter

본문

    <section id="bo_v_atc">
        <h2 id="bo_v_atc_title">본문</h2>

        <?php
        // 파일 출력
            for ($i=0; $i<=count($view[file]); $i++) {
              if ($view[file][$i][view]) {
                 $image_file="{$view[file][$i][view]}"; //<P>태그 삭제
                 $image_pos="<그림".($i+1).">";
                 $image_pos2="<그림".($i+1).">"; //추가
                 //수정
              if( strstr($view[content],$image_pos) || strstr($view[content],$image_pos2) ){
                 $pattern="/($image_pos|$image_pos2)/";

                 $view[content]=preg_replace($pattern,$image_file,$view[content]);
                 }
              else echo $view[file][$i][view] . "<p>";
              }
           }
        ?>

        <!-- 본문 내용 시작 { -->
	      <!-- SyntaxHighlighter 시작 -->
        <div id="bo_v_con">
        <?
        function _preg_callback($m)
        {
            $str = str_replace(array("<br/>", " "), array("\n", " "), $m[1]);
            return "<pre class='brush:php;'>$str</pre>";
        }

        $str = $view[content];
        $str = preg_replace_callback("/\[code\](.*)\[\/code\]/iU", "_preg_callback", $str);
        echo $str;
        ?>
        </div>
	      <!-- SyntaxHighlighter 끝 -->
        <?php//echo $view[rich_content]; // view_image($view, '0', '') 과 같은 코드를 사용할 경우 ?>
        <!-- } 본문 내용 끝 -->

        <?php if ($is_signature) { ?><p><?php echo $signature ?></p><?php } ?>
이렇게 사용할 때는 Rich Content와 SyntaxHighlighter 둘다 사용 가능했는데...

이미지 출력부분을 아래와 같이 바꾸니 소스가 그대로 출력되네요.
뭐가 문제일까요?

    <section id="bo_v_atc">
        <h2 id="bo_v_atc_title">본문</h2>

        <?php
        // 파일출력
        $rich=true; //rich_content 사용하지않을 경우 false;
          for ($i=0; $i<=count($view[file]); $i++) { $richimg='';
            if ($view[file][$i][view]){
               $richimg="{이미지:$i}";
                 if(!$rich || $rich && strpos(  $view[content], $richimg)===false)
                 echo $view[file][$i][view] . " <p>";
            }
          }
        ?>

        <!-- 본문 내용 시작 { -->
        <div id="bo_v_con"><? if($rich) echo $view[rich_content]; else echo $view[content]; ?></div>
        <!-- 테러 태그 방지용 --></xml></xmp><a href=""></a><a href=''></a>
	      <?php//echo $view[rich_content]; // view_image($view, '0', '') 과 같은 코드를 사용할 경우 ?>
        <!-- } 본문 내용 끝 -->

        <?php if ($is_signature) { ?><p><?php echo $signature ?></p><?php } ?>
두가지 모두 충족되지않아 현재는 SyntaxHighlighter는 삭제한 상태입니다.
삭제한 상태에서는 이미지는 정상 출력됩니다.

SIR 게시판에서는 Rich Content를 적용하지 않았군요.
일전에 작성했던 글들을 보니... 그림들이 모두 숨어버렸...;;;

이 질문에 댓글 쓰기 :

답변 2

<?php

        // 파일 출력
            for ($i=0; $i<=count($view[file]); $i++) {
              if ($view[file][$i][view]) {
                 $image_file="{$view[file][$i][view]}"; //<P>태그 삭제
                 $image_pos="<그림".($i+1).">";
                 $image_pos2="{이미지:$i}"; //추가
                 //수정
              if( strstr($view[content],$image_pos) || strstr($view[content],$image_pos2) ){
                 $pattern="/($image_pos|$image_pos2)/";

                 $view[content]=preg_replace($pattern,$image_file,$view[content]);
                 }
              else echo $view[file][$i][view] . "<p>";
              }
           }
        ?>
이렇게 수정하니 두가지 방식 모두 가능하고, SyntaxHighlighter도 사용할 수 있군요.
굳이 두가지를 병행해서 사용할 필요는 없으나...
이전에 작성했던 글들을 수정하지 않아도 되는군요.

이렇게 바꿨을 때 문제는 없을까요?

[code:php]

 

<?php

        // 파일 출력
            for ($i=0; $i<=count($view[file]); $i++) {
              if ($view[file][$i][view]) {
                 $image_file="{$view[file][$i][view]}"; //<P>태그 삭제
                 $image_pos="<그림".($i+1).">";
                 $image_pos2="{이미지:$i}"; //추가
                 //수정
              if( strstr($view[content],$image_pos) || strstr($view[content],$image_pos2) ){
                 $pattern="/($image_pos|$image_pos2)/";

                 $view[content]=preg_replace($pattern,$image_file,$view[content]);
                 }
              else echo $view[file][$i][view] . "<p>";
              }
           }
        ?>

 

[/code] 

답변을 작성하시기 전에 로그인 해주세요.
전체 61,409
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT