PHP Version 5.2.6 >> PHP Version 7.4.9 Error 수정문의
본문
다른 메시지는 안내대로 수정하여 정상구동 되는데,
아래 메시지는 수정방법을 몰라, 난감합니다... ㅠㅠ
1. Parse error: syntax error, unexpected '' (T_ENCAPSED_AND_WHITESPACE), expecting '-' or identifier (T_STRING) or variable (T_VARIABLE) or number (T_NUM_STRING)
in/home/netbis/html/theme/asktheme_b3/skin/board/fz_gallery_circle/category.php on line 7
<? $cnt_bo_1 = 9; // 한줄당 분류 갯수 ?>
<? if (!$wr_id) { ?>
<!-- 분류 셀렉트 박스 시작 -->
<?
$cnt = 1;
>>7번라인 $sql = " SELECT bo_category_list FROM $g5['board_table'] WHERE bo_table='$bo_table'";
$row = sql_fetch($sql);
$arr = explode("|", $row['bo_category_list']); // 구분자가 , 로 되어 있음
$str = "";
$str .= "<tr border='0'>";
for ($i=0; $i<count($arr); $i++)
if (trim($arr[$i])) {
$sql1 = " SELECT count(*) as cCount FROM $write_table WHERE ca_name = '$arr[$i]' and wr_is_comment = 0";
$row1 = sql_fetch($sql1);
$str .= "<td border=0 style='float:left !important;'>
<a href='./board.php?bo_table=$bo_table&sca=$arr[$i]&sop=&sst=wr_1&sod=desc&sfl=&stx=&page=1'><span class='readon'>$arr[$i] <span style='line-height:1.75em; font-size:8pt;color:#008F8F;'>($row1['cCount'])</span></span></a>|</td>";
if ($cnt == $cnt_bo_1) { $cnt = 0; $str .= "</tr><tr>"; }
$cnt++;
}
$sql2 = "SELECT count(*) as cCount FROM $write_table WHERE wr_is_comment = 0";
$row2 = sql_fetch($sql2);
$total_count = $row2['cCount']
?>
2. Warning: Illegal string offset 'source'
in/home/netbis/html/theme/asktheme_b3/skin/board/fz_gallery_circle/view.skin.php on line 40
<?php
$i = 0; $str = "";
// 가변 파일
foreach($view['file'] as $value) {
>> 40번라인 if($value['source'] && !$value['view']) {
$str .= "<li id='file_sector_{$i}'";
if($i==0) $str .= "class='first'";
$str .= ">";
if($value['content']) $str .= "<a href=\"javascript:layer_file('{$i}');\" class='btn_handle'>보기</a>";
$str .= "<a href=\"{$view['file'][$i]['href']}\" class='txt_name view_file_download' title='{$value['content']}'>{$value['source']}</a>";
$str .= "<span class='txt_size'>({$value['size']})</span>";
$str .= "<span class='txt_hit'>[{$value['download']}]</span>";
$str .= "<span class='txt_date'>{$value['datetime']}</span>";
if($value['content']) $str .= "<p class='txt_file_content' style='display:none;'>{$value['content']}</p>";
$str .= "</li>";
$i++;
}
}
// 링크
foreach($view['link'] as $key => $value) {
if(!$value) continue;
$str .= "<li";
if($i==0) $str .= " class='first'";
$str .= ">";
$str .= "<a href='{$view[link_href][$key]}' class='txt_link' target='_blank'>".cut_str($value, 70)."</a>";
$str .= "<span class='txt_hit'>[{$view[link_hit][$key]}]</span>";
$str .= "</li>";
$i++;
}
if($i>0) echo "<ul class='ad_list_area'>{$str}</ul>";
?>
답변 3
문자열에 배열 변수를 넣을 경우
$sql = " SELECT bo_category_list FROM {$g5['board_table'} WHERE bo_table='$bo_table'";
위와 같이 {}로 감싸야 합니다.
Illegal string offset 오류는
foreach 문 아래에 print_r2($value); 후 배열에 source 키가 정의되어 있는지 보세요.
아래 처럼 체크해 보세요.
//존재 여부 체크
if(isset($value['source']) && $value['source'] && !$value['view']) {
print_r($value);해보면 확인 가능합니다
아래처럼 변경하세요
$value['source'] --> $value[$i]['source']
$value['view'] --> $value[$i]['view']