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;
}