Markdown::readPostBaseInfo PHP Méthode

readPostBaseInfo() private méthode

读取博客的基本信息
private readPostBaseInfo ( $serverPath )
    private function readPostBaseInfo($serverPath)
    {
        $keywrodsArr = array();
        $tagsArr = array();
        $cateArr = array();
        $matches = null;
        $noteBlockArr = array();
        $noteTmpArr = array();
        $pattern1 = '/<\\!\\-\\-(.*?)\\-\\->/is';
        $pattern2 = '/^\\s*(author|head|date|title|top|summary|images|tags|category|status)\\s*:(.*?)$/im';
        $subject = file_get_contents($serverPath);
        $blogProp = array("author" => "", "head" => "", "date" => "", "title" => "", "summary" => "", "keywords" => "", "top" => "0", "images" => array(), "tags" => array(), "category" => array(), "status" => "publish", "content" => (string) $this->parseMarkdown($subject));
        preg_match($pattern1, $subject, $matches);
        if (isset($matches[1])) {
            $procontent = trim($matches[1]);
            $proarr = explode("\n", $procontent);
            foreach ($proarr as $proline) {
                $proline = trim($proline);
                if ($proline) {
                    preg_match($pattern2, $proline, $matches);
                    if (isset($matches[2])) {
                        $propName = trim($matches[1]);
                        $propVal = trim($matches[2]);
                        //echo $proName . " --> " . $proVal . "\n";
                        switch ($propName) {
                            case "author":
                                $blogProp['author'] = $propVal;
                                break;
                            case "head":
                                $blogProp['head'] = $propVal;
                                break;
                            case "date":
                                $time = strtotime($propVal);
                                $blogProp['date'] = $time === FALSE ? "" : date("Y-m-d", $time);
                                break;
                            case "title":
                                $blogProp['title'] = $propVal;
                                break;
                            case "top":
                                $blogProp['top'] = $propVal;
                                break;
                            case "summary":
                                $blogProp['summary'] = $this->parseMarkdown($propVal);
                                break;
                            case "images":
                                $blogProp['images'] = $this->cleanKeywords2Arr($propVal);
                                break;
                            case "tags":
                                $blogProp['tags'] = $this->converStrArr($propVal, "tags");
                                $tagsArr = $this->cleanKeywords2Arr($propVal);
                                break;
                            case "category":
                                $blogProp['category'] = $this->converStrArr($propVal, "category");
                                $cateArr = $this->cleanKeywords2Arr($propVal);
                                break;
                            case "status":
                                $blogProp['status'] = $propVal == "draft" ? $propVal : "publish";
                                break;
                        }
                    }
                }
            }
        }
        $keywrodsArr = array_merge($tagsArr, $cateArr);
        //关键字去重
        $keywrodsArr = array_unique($keywrodsArr);
        $blogProp['keywords'] = implode(",", $keywrodsArr);
        $blogProp = $this->autoCheckBlogProps($blogProp);
        return $blogProp;
    }