글복사시 첨부파일오류 첨부파일은 복사가 되지만 첨부파일 for구문 내용이 모두 나오는 문제
본문
안녕하세요. 첨부파일 오류때문에 질문드립니다.
글을 복사하면 첨부파일은 복사가되는데,
첨부파일에 해당하는 이름과 이미지가 전부 복사되어서 나옵니다.
예를들어,
*전체 첨부파일은 5개로 설정하였습니다.
첨부파일이 한개이고 그에 해당하는 이미지와 제목도 같이 나오게 코드를 짰는데,
이 글을 복사하면, 기존 첨부파일 이미지와 내용은 모두 복사가되는데
나머지 네개해당하는 첨부파일이 없는데 이미지와 내용이 나옵니다.
설명하기가 좀 쉽지않은데 코드를 보여드릴게요
기존 이미지와 카타로그 다운로드라는 글자도 삭제되어야하는데 삭제가 안됩니다.
<?php if ($cnt) { ?>
<div id="product_view_catal">
<div id="bo_v_file">
<?php
for ($i = 1; $i <= 5; $i++) {
$x = $i + 3;
$c = $i + 5;
echo $size[0];
if ($i == 1) echo '<ul class=product_view_catalogue_list>';
if ($view['file'][$i]['file']) {
$image = urlencode($view['file'][$i]['file']);
if (preg_match("/\.(gif|jpg|png)$/i", $image) && file_exists(G5_PATH . '/data/file/' . $bo_table . '/' . $image)) {
echo '<li class=product_view_catalogue_item>';
echo '<div class="img_box"><img src="' . G5_URL . '/data/file/' . $bo_table . '/' . $image . '" alt="' . $view['file'][$i]['bf_content'] . '" class="' . $size[0] . ' ' . $size[1] . '"></div>';
echo '<div class=product_view_catalogue_info>';
echo '<p class="catalogue_text"><b>' . $view['wr_' . $x] . '<i>' . $board['bo_subject'] . '</i></b></p>';
echo '</div>';
echo '<div class=product_view_catal_down_wrap>';
echo '<a href="' . $view['file'][$c]['href'] . '" class="btn_download" target="_blank"><span>카타로그 다운로드</span><i class="xi-valign-bottom"></i></a>';
echo '</div>';
echo '</li>';
}
}
}
if ($i > 1) echo '</ul>';
?>
</div>
</div>
<?php } ?>
답변 1
다음과 같은 방법으로 해 볼 수 있을 것 같습니다.
<?php if ($cnt) { ?>
<div id="product_view_catal">
<div id="bo_v_file">
<?php
$first_attachment_found = false; // Flag to track if at least one attachment is found
for ($i = 1; $i <= 5; $i++) {
$x = $i + 3;
$c = $i + 5;
// Check if there is an attachment for this index and if the attachment image file exists
if ($view['file'][$i]['file'] && preg_match("/\.(gif|jpg|png)$/i", $view['file'][$i]['file']) && file_exists(G5_PATH . '/data/file/' . $bo_table . '/' . $view['file'][$i]['file'])) {
// Display the first attachment's image and content
if (!$first_attachment_found) {
echo '<ul class="product_view_catalogue_list">';
$first_attachment_found = true;
}
echo '<li class="product_view_catalogue_item">';
echo '<div class="img_box"><img src="' . G5_URL . '/data/file/' . $bo_table . '/' . $view['file'][$i]['file'] . '" alt="' . $view['file'][$i]['bf_content'] . '" class="' . $size[0] . ' ' . $size[1] . '"></div>';
echo '<div class="product_view_catalogue_info">';
echo '<p class="catalogue_text"><b>' . $view['wr_' . $x] . '<i>' . $board['bo_subject'] . '</i></b></p>';
echo '</div>';
echo '<div class="product_view_catal_down_wrap">';
echo '<a href="' . $view['file'][$c]['href'] . '" class="btn_download" target="_blank"><span>카탈로그 다운로드</span><i class="xi-valign-bottom"></i></a>';
echo '</div>';
echo '</li>';
}
}
if ($first_attachment_found) {
echo '</ul>';
}
?>
</div>
</div>
<?php } ?>
첨부 파일 이미지와 내용이 복사되는 문제:
주어진 코드에서 첨부 파일 이미지와 내용을 복사하는 부분은 별도의 if 문 없이 for 루프 안에 있습니다. 따라서, 첨부 파일이 없더라도 루프가 실행되고 해당 위치에 이전 첨부 파일 이미지와 내용이 그대로 표시됩니다.
기존 이미지와 "카탈로그 다운로드" 텍스트 삭제 문제:
해당 코드에서 이미지와 "카탈로그 다운로드" 텍스트를 삭제하는 코드가 없습니다. 이를 해결하기 위해서 조건문을 추가해야 합니다.
!-->
답변을 작성하시기 전에 로그인 해주세요.