public function getBlogByKeyword($keyword, $max = 50) { $keyword = strtolower($keyword); $cacheKey = "getBlogByKeyword_" . md5($keyword) . "_" . $max . ".gb"; $blogList = $this->gbReadCache($cacheKey); if ($blogList === false) { $blogList = array(); foreach ($this->blogs as $idx => $blog) { $blogTitle = strtolower($blog['title']); $blogContent = strtolower(strip_tags($blog['content'])); $blogKeywords = strtolower($blog['keywords']); $blogSummary = strtolower($blog['summary']); $blogTags = ''; foreach ($blog['tags'] as $tag) { $blogTags = $blogTags . ' ' . $tag['name']; } $blogCategory = ''; foreach ($blog['category'] as $category) { $blogCategory = $blogCategory . ' ' . $category['name']; } if (strpos($blogTitle, $keyword) !== FALSE || strpos($blogContent, $keyword) !== FALSE || strpos($blogKeywords, $keyword) !== FALSE || strpos($blogTags, $keyword) !== FALSE || strpos($blogCategory, $keyword) !== FALSE || strpos($blogSummary, $keyword) !== FALSE) { array_push($blogList, $blog); } if (count($blogList) >= $max) { break; } } $this->gbWriteCache($cacheKey, $blogList); } return $blogList; }