스크롤 최신글에서 이미지, 내용, 제목을 뽑을 경우 내용에 테그를 삭제하여도 출력이 안되는 부분에 대한 질문 입니다. 정보
스크롤 최신글에서 이미지, 내용, 제목을 뽑을 경우 내용에 테그를 삭제하여도 출력이 안되는 부분에 대한 질문 입니다.
본문
######################## 원본 소스 ##########################
<script language="javascript">
var roll_height_s = 120;
var total_area_s = 0;
var wait_flag_s = true;
var roll_height_s = 120;
var total_area_s = 0;
var wait_flag_s = true;
var bMouseOver_s = 1;
var roll_speed_s = 1;
var waitingtime_s = 4000; //스피드
var s_tmp_s = 0;
var s_amount_s = 120;
var roll_text_s = new Array();
var startPanel_s = 0;
var n_panel_s = 0;
var i_s = 0;
var roll_speed_s = 1;
var waitingtime_s = 4000; //스피드
var s_tmp_s = 0;
var s_amount_s = 120;
var roll_text_s = new Array();
var startPanel_s = 0;
var n_panel_s = 0;
var i_s = 0;
function start_roll_s()
{
i_s = 0;
for (i_s in roll_text_s)
n_panel_s++;
{
i_s = 0;
for (i_s in roll_text_s)
n_panel_s++;
n_panel_s = n_panel_s -1 ;
startPanel_s = Math.round(Math.random()*n_panel_s);
if(startPanel_s == 0)
{
i_s = 0;
for (i_s in roll_text_s)
insert_area_s(total_area_s, total_area_s++); // area 삽입
}
else if(startPanel_s == n_panel_s)
{
insert_area_s(startPanel_s, total_area_s);
total_area_s++;
for (i_s=0; i_s<startPanel_s; i_s++)
{
insert_area_s(i_s, total_area_s); // area 삽입
total_area_s++;
}
}
else if((startPanel_s > 0) || (startPanel_s < n_panel_s))
{
insert_area_s(startPanel_s, total_area_s);
total_area_s++;
for (i_s=startPanel_s+1; i_s<=n_panel_s; i_s++)
{
insert_area_s(i_s, total_area_s); // area 삽입
total_area_s++;
}
for (i_s=0; i_s<startPanel_s; i_s++)
{
insert_area_s(i_s, total_area_s); // area 삽입
total_area_s++;
}
}
if ( navigator.appName == "Microsoft Internet Explorer" )
{
if ( navigator.appVersion.indexOf ( "MSIE 4" ) > -1 )
return ;
}
window.setTimeout("rolling_s()",waitingtime_s);
}
startPanel_s = Math.round(Math.random()*n_panel_s);
if(startPanel_s == 0)
{
i_s = 0;
for (i_s in roll_text_s)
insert_area_s(total_area_s, total_area_s++); // area 삽입
}
else if(startPanel_s == n_panel_s)
{
insert_area_s(startPanel_s, total_area_s);
total_area_s++;
for (i_s=0; i_s<startPanel_s; i_s++)
{
insert_area_s(i_s, total_area_s); // area 삽입
total_area_s++;
}
}
else if((startPanel_s > 0) || (startPanel_s < n_panel_s))
{
insert_area_s(startPanel_s, total_area_s);
total_area_s++;
for (i_s=startPanel_s+1; i_s<=n_panel_s; i_s++)
{
insert_area_s(i_s, total_area_s); // area 삽입
total_area_s++;
}
for (i_s=0; i_s<startPanel_s; i_s++)
{
insert_area_s(i_s, total_area_s); // area 삽입
total_area_s++;
}
}
if ( navigator.appName == "Microsoft Internet Explorer" )
{
if ( navigator.appVersion.indexOf ( "MSIE 4" ) > -1 )
return ;
}
window.setTimeout("rolling_s()",waitingtime_s);
}
function rolling_s()
{
if (bMouseOver_s && wait_flag_s)
{
for (i_s=0;i_s<total_area_s;i_s++){
tmp_s = document.getElementById('scroll_area_s'+i_s).style;
tmp_s.top = parseInt(tmp_s.top)-roll_speed_s;
if (parseInt(tmp_s.top) <= -roll_height_s){
tmp_s.top = roll_height_s*(total_area_s-1);
}
if (s_tmp_s++ > (s_amount_s-1)*roll_text_s.length){
wait_flag_s=false;
window.setTimeout("wait_flag_s=true;s_tmp_s=0;",waitingtime_s);
}
}
}
window.setTimeout("rolling_s()", 1);
}
{
if (bMouseOver_s && wait_flag_s)
{
for (i_s=0;i_s<total_area_s;i_s++){
tmp_s = document.getElementById('scroll_area_s'+i_s).style;
tmp_s.top = parseInt(tmp_s.top)-roll_speed_s;
if (parseInt(tmp_s.top) <= -roll_height_s){
tmp_s.top = roll_height_s*(total_area_s-1);
}
if (s_tmp_s++ > (s_amount_s-1)*roll_text_s.length){
wait_flag_s=false;
window.setTimeout("wait_flag_s=true;s_tmp_s=0;",waitingtime_s);
}
}
}
window.setTimeout("rolling_s()", 1);
}
function insert_area_s(idx_s, n_s)
{
document.write('<div style="left: 0px; width: 100%; position: absolute; top: '+(roll_height_s*n_s)+'px" id="scroll_area_s'+n_s+'">\n'+roll_text_s[idx_s]+'\n</div>\n');
}
{
document.write('<div style="left: 0px; width: 100%; position: absolute; top: '+(roll_height_s*n_s)+'px" id="scroll_area_s'+n_s+'">\n'+roll_text_s[idx_s]+'\n</div>\n');
}
<?
$java_script = "";
for ($i=0; $i<count($list); $i++) {
$contents[$i] = trim(stripslashes(cut_str(str_replace(' ','',strip_tags($list[$i][content])), 140, '…')));
$ooo='<table width=100% height=120 cellpadding=1 cellspacing=0 border=0><tr><td width=100%><table width=100% height=120 cellpadding=1 cellspacing=0 border=0><tr><td align=center rowspan=\"2\"><a href='.$list[$i][href].'><img src=\"'.$list[$i][file_image1].'\" width=\"72\" border=6 style=\"border-color:f7f7f7;\"></a></td><td><a href='.$list[$i][href].'><font color=\"#005cab\">:: '.$list[$i][subject].'</font></a></td></tr><tr><td><font color=\"#666666\">'.$contents[$i].'</font></td></tr></table></td></tr></table>';
$java_script .= "roll_text_s[$i]='$ooo'\n";
}
echo $java_script;
?>
</script>
<div style="left: 0px; width: 100%; position: relative; top: 0px; height: 120px; overflow:hidden;" onMouseover="bMouseOver_s=0" onMouseout="bMouseOver_s=1" id="scroll_image_s">
<script>
var no_script_flag_s = false ;
if ( navigator.appName == "Microsoft Internet Explorer" )
{
if ( navigator.appVersion.indexOf ( "MSIE 4" ) > -1 )
{
document.write ( roll_text_s[0] ) ;
no_script_flag_s = true ;
}
}
if ( no_script_flag_s == false )
start_roll_s();
</script>
</div>
$java_script = "";
for ($i=0; $i<count($list); $i++) {
$contents[$i] = trim(stripslashes(cut_str(str_replace(' ','',strip_tags($list[$i][content])), 140, '…')));
$ooo='<table width=100% height=120 cellpadding=1 cellspacing=0 border=0><tr><td width=100%><table width=100% height=120 cellpadding=1 cellspacing=0 border=0><tr><td align=center rowspan=\"2\"><a href='.$list[$i][href].'><img src=\"'.$list[$i][file_image1].'\" width=\"72\" border=6 style=\"border-color:f7f7f7;\"></a></td><td><a href='.$list[$i][href].'><font color=\"#005cab\">:: '.$list[$i][subject].'</font></a></td></tr><tr><td><font color=\"#666666\">'.$contents[$i].'</font></td></tr></table></td></tr></table>';
$java_script .= "roll_text_s[$i]='$ooo'\n";
}
echo $java_script;
?>
</script>
<div style="left: 0px; width: 100%; position: relative; top: 0px; height: 120px; overflow:hidden;" onMouseover="bMouseOver_s=0" onMouseout="bMouseOver_s=1" id="scroll_image_s">
<script>
var no_script_flag_s = false ;
if ( navigator.appName == "Microsoft Internet Explorer" )
{
if ( navigator.appVersion.indexOf ( "MSIE 4" ) > -1 )
{
document.write ( roll_text_s[0] ) ;
no_script_flag_s = true ;
}
}
if ( no_script_flag_s == false )
start_roll_s();
</script>
</div>
###################################################################
상기의 소스는 스크롤 최신글인데 특별히 이상은 없습니다. 하지만 $contents[$i] 이 내용 배열 부분에서
원글 게시판 내용에[에디터 기능을 사용하지 않은 보통 textarea 사용] 최신글에 표기될 부분에 [enter]만 있으면 출력이 안되는 현상이 발생합니다.
그래서
$contents[$i] = trim(stripslashes(cut_str(str_replace(' ','',strip_tags($list[$i][content])), 140, '…')));
$contents[$i] = str_replace('\n','',$contents[$i]);
이렇게 한행을 더추가하여 엔터로 표시되는 부분을 치환할려구 하였습니다.
하지만 문제가 이것이 아닌지.. 역시나 본원글 내용에서 최신글에 표기될 영역에 엔터를 쳤던부분이 포함될경우 최신글이 출력이 안되는 현상이 발생합니다.
잘못가는 방향인듯하여 조언을 구하고자 합니다.
그럼 오늘 좋은 하루되십시오. ^^*
댓글 전체
자문자답
혹시 이것때문에 고생하시는분이 계실것 같아 올립니다.
예
1. 실제 쓴글)
테스트 글입니다.
테스트 글입니다.
2. 보여지는 텍스트는[처리내용 : $contents[$i] = trim(stripslashes(cut_str(str_replace(' ','',strip_tags($list[$i][content])), 140, '…')));])
테스트글입니다. 테스트 글입니다.
3. 소스보기에서의 글
테스트 글입니다.
테스트 글입니다.
-> 결론 실제로 보여지는 것과 적용된 테그의 세밀한 차이가 생기는군요.
그래서
캐리지 리턴: \r
줄(열)바꿈 문자: \n
두가지를 모두 처리 하였습니다.
실제 적용 소스 :
$ori_text = array(" ","\n","\r");
$contents[$i] = str_replace($ori_text,"", $list[$i][content]);
이런식으로 두가지와 공백또한 같이 처리 하여서 해결하였습니다.
혹시나 하는맘에 실제 적용 테그를 보니 눈에 보이지않는 부분이 존재 하네요... 그럼 좋은하루되세요.
혹시 이것때문에 고생하시는분이 계실것 같아 올립니다.
예
1. 실제 쓴글)
테스트 글입니다.
테스트 글입니다.
2. 보여지는 텍스트는[처리내용 : $contents[$i] = trim(stripslashes(cut_str(str_replace(' ','',strip_tags($list[$i][content])), 140, '…')));])
테스트글입니다. 테스트 글입니다.
3. 소스보기에서의 글
테스트 글입니다.
테스트 글입니다.
-> 결론 실제로 보여지는 것과 적용된 테그의 세밀한 차이가 생기는군요.
그래서
캐리지 리턴: \r
줄(열)바꿈 문자: \n
두가지를 모두 처리 하였습니다.
실제 적용 소스 :
$ori_text = array(" ","\n","\r");
$contents[$i] = str_replace($ori_text,"", $list[$i][content]);
이런식으로 두가지와 공백또한 같이 처리 하여서 해결하였습니다.
혹시나 하는맘에 실제 적용 테그를 보니 눈에 보이지않는 부분이 존재 하네요... 그럼 좋은하루되세요.