이미지 게시판 오류 질문

매출이 오르면 내리는 수수료! 지금 수수료센터에서 전자결제(PG)수수료 비교견적 신청해 보세요!
이미지 게시판 오류 질문

QA

이미지 게시판 오류 질문

본문

안녕 하세요?

홈페이지 초보자 입니다.^^

다른 테마적용후 겔리리 게시판을 만들어 봤는데

아래와 같은 오류가나네요^^

Warning: json_encode() expects exactly 1 parameter, 2 given in /www/hbjoun/www/plugin/ask-metagen/askmetagen.lib.php on line 199

초보자라 어디서 문제 인지 알수가 없어서 질문 드립니다.

 

 

이 질문에 댓글 쓰기 :

답변 3

경고메시지로만 보자면

/plugin/ask-metagen/askmetagen.lib.php 파일 199라인에

json_encode() 함수를 사용함에 있어 괄호 안에 들어 올 인자가 하나여야 하는데

둘이라 경고를 날린 듯 한데 그 부분을 수정해 보시거나

모르시겠거든 여기에 그 부분만 올려 보세요. 

현재 어떻게 되어 있는지 볼 수 있게요.

PHP버전이 5.2 미만버전인지 확인해 보시죠.
현재는 JSON_UNESCAPED_SLASHES | JSON_PRETTY_PRINT 이런 옵션이 없네요.
참조사이트: http://php.net/manual/kr/function.json-encode.php

<?php

if (!defined('_GNUBOARD_')) {
    exit;
}

/**
 * ASK MetaTag Generator
 * 유료 프로그램입니다. 불법복제 금지
 */
class MetaTags {

    protected $indentation;
    protected $order;
    protected $tags = array();
    protected $g5;
    protected $board;

    /**
     * Create a new instance.
     *
     * string  $indentation
     * array   $order
     *
     * void
     */
    public function __construct($indentation = null, $order = null) {
        global $g5, $board;
        $this->g5 = $g5;
        $this->board = $board;
        //php 5.3 이하는 삼항연산자 생략하면 오류.
        $this->indentation = $indentation ? $indentation : '    ';
        $this->order = $order ? $order : array('title', 'meta', 'og', 'twitter', 'link', 'json-ld');
    }

    /**
     * 게시물 하나 가져오기
     * type $bo_table
     * type $wr_id
     * type $is_comment
     * type
     */
    public function get_view($bo_table, $wr_id, $is_comment = false) {
        $comment = " and wr_is_comment = '0'";
        if ($is_comment == true) {
            $comment = " and wr_is_comment = '1'";
        }
        $write_table = $this->g5['write_prefix'] . $bo_table;
        $sql = "SELECT * FROM `{$write_table}` where wr_parent = '{$wr_id}' {$comment}";
        $result = sql_query($sql);
        $data = array();
        while ($row = sql_fetch_array($result)) {
            $data[] = $row;
        }
        return $data;
    }

    /**
     * 이미지 정보 하나만 가져오기
     * type $bo_table
     * type $wr_id
     * string
     */
    public function get_file($bo_table, $wr_id, $contents) {
        $images = array();
        $sql = " select * from {$this->g5['board_file_table']} where bo_table = '{$bo_table}' and wr_id = '{$wr_id}' and (bf_type = '1' or bf_type = '2' or bf_type = '3') order by bf_no ";
        $result = sql_query($sql);

        //첨부이미지
        while ($row = sql_fetch_array($result)) {
            $images[] = G5_DATA_URL . DIRECTORY_SEPARATOR . 'file' . DIRECTORY_SEPARATOR . $bo_table . DIRECTORY_SEPARATOR . $row['bf_file'];
        }

        //에디터로 등록된 이미지 검사
        $_img = get_editor_image($contents, false);
        foreach ($_img['1'] as $key => $value) {
            $images[] = $value;
        }

        return $images;
    }

    /**
     * 회원이미지
     * type $mb_id
     * string
     */
    public function get_member_image($mb_id) {
        $mb_dir = substr($mb_id, 0, 2);
        $icon_file = G5_DATA_PATH . '/member_image/' . $mb_dir . '/' . $mb_id . '.gif';
        if (file_exists($icon_file)) {
            $icon_url = G5_DATA_URL . '/member_image/' . $mb_dir . '/' . $mb_id . '.gif';
        } else {
            $icon_url = G5_URL . "/img/no_profile.gif";
        }
        return $icon_url;
    }

    /**
     * 내용관리 가져오기
     * type $co_id
     * type
     */
    public function get_content($co_id) {
        // 내용
        $sql = " select * from {$this->g5['content_table']} where co_id = '$co_id' ";
        $co = sql_fetch($sql);
        return $co;
    }

    /**
     * Build an HTML link tag.
     *
     * string  $key
     * string  $value
     *
     * string
     */
    public function link($key, $value) {
        if (!empty($value)) {
            $attributes = array('rel' => $key);

            if (is_array($value)) {
                foreach ($value as $key => $v) {
                    $attributes[$key] = $v;
                }
            } else {
                $attributes['href'] = $value;
            }

            $tag = $this->createTag('link', $attributes);

            $this->addToTagsGroup('link', $key, $tag);

            return $tag;
        }
    }

    /**
     * Build an HTML meta tag.
     *
     * string  $key
     * string  $value
     *
     * string
     */
    public function meta($key, $value) {
        if (!empty($value)) {
            $attributes = array('name' => $key);

            if (is_array($value)) {
                foreach ($value as $key => $v) {
                    $attributes[$key] = $v;
                }
            } else {
                $attributes['content'] = $value;
            }

            $tag = $this->createTag('meta', $attributes);

            $this->addToTagsGroup('meta', $key, $tag);

            return $tag;
        }
    }

    /**
     * Build an Open Graph meta tag.
     *
     * string   $key
     * string   $value
     * boolean  $prefixed
     *
     * string
     */
    public function og($key, $value, $prefixed = true) {
        if (!empty($value)) {
            $key = $prefixed ? "og:{$key}" : $key;
            $tag = $this->createTag('meta', array(
                'property' => $key,
                'content' => $value
            ));

            $this->addToTagsGroup('og', $key, $tag);

            return $tag;
        }
    }

    /**
     * Build an JSON linked data meta tag.
     *
     * array  $schema
     *
     * string
     */
    public function jsonld($schema) {
        if (!empty($schema)) {
            $json = json_encode($schema, JSON_UNESCAPED_SLASHES | JSON_PRETTY_PRINT);

            $script = "<script type=\"application/ld+json\">\n" . $json . "\n</script>";

            // Fix schema indentation
            $this->tags['json-ld'][] = implode(
                    "\n" . $this->indentation,
                    explode("\n", $script)
            );

            return $script;
        }
    }

    /**
     * Build a Title HTML tag.
     *
     * string  $value
     *
     * string
     */
    public function title($value) {
        if (!empty($value)) {
            $tag = "<title>{$this->escapeAll($value)}</title>";

            $this->tags['title'][] = $tag;

            return $tag;
        }
    }

    /**
     * Build a Twitter Card meta tag.
     *
     * string   $key
     * string   $value
     * boolean  $prefixed
     *
     * string
     */
    public function twitter($key, $value, $prefixed = true) {
        if (!empty($value)) {
            $key = $prefixed ? "twitter:{$key}" : $key;
            $tag = $this->createTag('meta', array(
                'name' => $key,
                'content' => $value
            ));

            $this->addToTagsGroup('twitter', $key, $tag);

            return $tag;
        }
    }

    /**
     * Render all or a specific group of HTML meta tags
     *
     * mixed  $groups
     *
     * string
     */
    public function render($groups = null) {
        $groups = !is_null($groups) ? (array) $groups : $this->order;
        $html = array();

        foreach ($groups as $group) {
            $html[] = $this->renderGroup($group);
        }

        $html = implode('', $html);

        // Remove first indentation
        return preg_replace("/^{$this->indentation}/", '', $html, 1);
    }

    /**
     * Render all HTML meta tags from a specific group.
     *
     * string  $group
     *
     * string
     */
    protected function renderGroup($group) {
        if (!isset($this->tags[$group])) {
            return;
        }

        $html = array();

        foreach ($this->tags[$group] as $tag) {
            if (is_array($tag)) {
                foreach ($tag as $t) {
                    $html[] = $t;
                }
            } else {
                $html[] = $tag;
            }
        }

        return count($html) > 0 ? $this->indentation . implode("\n" . $this->indentation, $html) . "\n" : '';
    }

    /**
     * Add single HTML element to tags group.
     *
     * string  $group
     * string  $key
     * string  $tag
     *
     * void
     */
    protected function addToTagsGroup($group, $key, $tag) {
        if (isset($this->tags[$group][$key])) {
            $existingTag = $this->tags[$group][$key];

            if (is_array($existingTag)) {
                $this->tags[$group][$key][] = $tag;
            } else {
                $this->tags[$group][$key] = array($existingTag, $tag);
            }
        } else {
            $this->tags[$group][$key] = $tag;
        }
    }

    /**
     * Build an HTML attribute string from an array.
     *
     * array  $attributes
     *
     * string
     */
    protected function attributes(array $attributes) {
        $html = array();

        foreach ($attributes as $key => $value) {
            $element = $this->attributeElement($key, $value);

            if (!is_null($element)) {
                $html[] = $element;
            }
        }

        return count($html) > 0 ? ' ' . implode(' ', $html) : '';
    }

    /**
     * Build a single attribute element.
     *
     * string  $key
     * string  $value
     *
     * string
     */
    protected function attributeElement($key, $value) {
        if (!is_null($value)) {
            return $key . '="' . $this->escapeAll($value) . '"';
        }
    }

    /**
     * Build an HTML tag
     *
     * string  $tagName
     * array   $attributes
     *
     * string
     */
    protected function createTag($tagName, $attributes) {
        if (!empty($tagName) && is_array($attributes)) {
            return "<{$tagName}{$this->attributes($attributes)}>";
        }
    }

    /**
     * Replace special characters with HTML entities
     *
     * string  $value
     *
     * string
     */
    protected function escapeAll($value) {
        return htmlentities($value, ENT_QUOTES, 'UTF-8');
    }

}

php버전을 업데이트하시든지


$json = json_encode($schema, JSON_UNESCAPED_SLASHES | JSON_PRETTY_PRINT);
부분을

$json = json_encode($schema);

로 수정하셔야 될거 같습니다. 

이 부분 수정하시더라도 다른 부분 문제 생길수 있으니 php버전 업데이트 하시는게 맞을것 같습니다.

 

 

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

회원로그인

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