文章第一张图片 > 系统图库 * @param $obj * @return 获取文章头图 */ function get_postthumb($obj) { if (isset($obj->fields->thumb)) { return $obj->fields->thumb; } preg_match("/]+src\s*=\s*['\"]([^'\"]+)['\"][^>]*>/ ", $obj->content, $matches); if (isset($matches[1])) { return $matches[1]; } preg_match("/!\[(.*?)\]\((.*?)\)/ ", $obj->content, $matches); if (isset($matches[2])) { return $matches[2]; } $thumbPath = __DIR__ . '/static/medias/featureimages/'; $files = scandir($thumbPath); $thumbs = []; for ($i = 0; $i < count($files); $i++) { if (is_file($thumbPath . $files[$i])) { $thumbs[] = $files[$i]; } } return Helper::options()->themeUrl . '/static/medias/featureimages/' . $thumbs[rand(0, count($thumbs) - 1)]; } /** * @param $obj 对象 * @return string 上一页url */ function getPrevPageLink($obj) { ob_start(); $obj->pagelink("prev", "prev"); $pageLink = ob_get_contents(); ob_end_clean(); preg_match("/]+href\s*=\s*['\"]([^'\"]+)['\"][^>]*>/", $pageLink, $matches); if (isset($matches[1])) { return $matches[1]; } return "#"; } /** * @param $obj 对象 * @return string 下一页url */ function getNextPageLink($obj) { ob_start(); $obj->pageLink("next", "next"); $pageLink = ob_get_contents(); ob_end_clean(); preg_match("/]+href\s*=\s*['\"]([^'\"]+)['\"][^>]*>/", $pageLink, $matches); if (isset($matches[1])) { return $matches[1]; } return "#"; } /** * 统计文章字数 * * @param $cid */ function articleCount($cid) { $db = Typecho_Db::get(); $rs = $db->fetchRow($db->select('table.contents.text')->from('table.contents')->where('table.contents.cid=?', $cid)->order('table.contents.cid', Typecho_Db::SORT_ASC)->limit(1)); $text = preg_replace("/[^\x{4e00}-\x{9fa5}]/u", "", $rs['text']); return mb_strlen($text, 'UTF-8'); } /** * 获取文章访问数 * @param $archive * @return string|void * @throws Typecho_Db_Exception */ function articleViewsNum($archive) { $cid = $archive->cid; $db = Typecho_Db::get(); $prefix = $db->getPrefix(); if (!array_key_exists('views', $db->fetchRow($db->select()->from('table.contents')))) { $db->query('ALTER TABLE `' . $prefix . 'contents` ADD `views` INT(10) DEFAULT 0;'); echo 0; return; } $row = $db->fetchRow($db->select('views')->from('table.contents')->where('cid = ?', $cid)); if ($archive->is('single')) { $db->query($db->update('table.contents')->rows(array('views' => (int) $row['views'] + 1))->where('cid = ?', $cid)); } if($row['views'] < 1000){ return $row['views']; } else { return ($row['views'] / 1000) .'k'; } }