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 } ?>
이미지 출력부분을 아래와 같이 바꾸니 소스가 그대로 출력되네요.
뭐가 문제일까요?
<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]
답변을 작성하시기 전에 로그인 해주세요.