위의 파일을 사용해서 사이트맵을 만들고 있습니다.

매출이 오르면 내리는 수수료! 지금 수수료센터에서 전자결제(PG)수수료 비교견적 신청해 보세요!
위의 파일을 사용해서 사이트맵을 만들고 있습니다.

QA

위의 파일을 사용해서 사이트맵을 만들고 있습니다.

본문

https://sir.kr/g5_tip/7684#c_23169

sitemap.xml 생성기입니다.
 sitemap_createor.zip
 
위의 파일을 사용해서 사이트맵을 만들고 있습니다.
그런데
아래와 같은 메시지가 나옵니다.

 

Warning: Illegal string offset 'bo_table' in /hosting/xxxxxxxxx/html/sitemap/sitemap.php on line 27

 

위와 같은 메시지가 나옵니다. 

어떻게 해결해야 하나요?

감사합니다.

 

=======

원본 파일

 

<?php
    # 총 4군데 변경입니다.
    # common.php 파일 위치 절대 경로 세팅
    include_once ("/var/www/common.php"); # 꼭 변경하세요.

    # 기본 설정
    $wwwPath = "/var/www/"; # 꼭 변경하세요.
    $wwwURL = "http://www.domain.com"; # 꼭 변경하세요.
    
    # 게시판 리스트
    $sql = " SELECT * FROM {$g5['board_table']} WHERE bo_read_level = 1";
    $query = sql_query($sql);
    
    while ($row = sql_fetch_array($query)) {
        $board[] = $row;
    }
    
    # 파일 작성 시작
    $sitemap = fopen($wwwPath.'/sitemap/sitemap.xml', 'w') or die('file not found'); # 사이트맵 생성 경로 변경
        fwrite($sitemap, "<?xml version=\"1.0\" encoding=\"UTF-8\"?>");
        fwrite($sitemap, '<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">');
    
        $boardLink = "";
        $contentLink = "";
        foreach ($board as $key => $val) :
            # 마지막 게시물 시간
            $sql = " SELECT * FROM {$g5['write_prefix']}{$val['bo_table']} WHERE wr_id = wr_parent AND wr_is_comment = 0 ORDER BY wr_datetime DESC LIMIT 0, 1";
            $query = sql_fetch($sql);
            
            # 마지막 게시물 생성 시간이 없으면 현재 시간으로 설정
            $query['wr_datetime'] = (empty($query['wr_datetime'])) ? date('Y-m-d\TH:i:s')."+00:00" : preg_replace("/\s/im", "T", $query['wr_datetime'])."+00:00";
            
            # 게시판 링크 작성
            $boardLink = "";
            $boardLink = "<url>";
                $boardLink .= "<loc>";
                    $boardLink .= G5_BBS_URL."/board.php?bo_table={$val['bo_table']}";
                $boardLink .= "</loc>";
                $boardLink .= "<lastmod>{$query['wr_datetime']}</lastmod>";
                $boardLink .= "<changefreq>daily</changefreq>";
                $boardLink .= "<priority>0.9</priority>";
            $boardLink .= "</url>";
            
            # 게시판 링크 작성
            fwrite($sitemap, $boardLink);
            
            # 게시판 게시물 작성
            $sql = " SELECT * FROM {$g5['write_prefix']}{$val['bo_table']} WHERE wr_id = wr_parent AND wr_is_comment = 0 ORDER BY wr_datetime DESC";
            $query = sql_query($sql);
            
            unset($row);
            while ($row = sql_fetch_array($query)) {
                $row['wr_datetime'] = (empty($row['wr_datetime'])) ? date('Y-m-d\TH:i:sp')."+00:00" : preg_replace("/\s/im", "T", $row['wr_datetime'])."+00:00";
                $contentLink = "";
                $contentLink = "<url>";
                    $contentLink .= "<loc>";
                        $contentLink .= G5_BBS_URL."/board.php?bo_table={$val['bo_table']}&wr_id={$row['wr_id']}";
                    $contentLink .= "</loc>";
                    $contentLink .= "<lastmod>".preg_replace("/\s/im", "T", $row['wr_datetime'])."</lastmod>";
                    $contentLink .= "<changefreq>weekly</changefreq>";
                    $contentLink .= "<priority>0.5</priority>";
                $contentLink .= "</url>";
                
                # 게시판 게시물 링크 작성
                fwrite($sitemap, $contentLink);
            }
        endforeach;
        
        fwrite($sitemap, '</urlset>');
    fclose($sitemap);
?>

 

==========

이 질문에 댓글 쓰기 :

답변 2

뭐가 안 될 땐 각 변수의 값이 먼저 제대로 출력되는지 확인하셔야....

일반 변수는 echo로 확인하시고, 배열변수는 print_r, var_dump, print_r2 등 함수 사용해 확인하시면서 작업해 보세요.

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

회원로그인

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