PHP Version 5.2.6 >> PHP Version 7.4.9 Error 수정문의

PHP Version 5.2.6 >> PHP Version 7.4.9 Error 수정문의

QA

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']

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

회원로그인

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