first commit

This commit is contained in:
pakerpale
2020-06-10 06:21:34 +09:00
commit 20c9739ba9
1913 changed files with 266257 additions and 0 deletions

View File

@@ -0,0 +1,50 @@
<?php
class Search
{
private $CI;
public function __construct($params = [])
{
$this->CI = &get_instance();
}
public function searchByPostTitle($postTitle, $limit, $exception = [], $activeQ = false)
{
$titleSegments = [];
foreach (explode(' ', $postTitle) as $k => $t) {
if (mb_strlen($t, 'utf-8') > ($activeQ ? 1 : 3)) array_push($titleSegments, $this->clean($t));
}
$this->CI->db
->join('cm_post_tag t', 'p.postID=t.postID', 'left')
->from('cm_post p');
foreach ($titleSegments as $k => $t) {
!$k ? $this->CI->db->like('postTitle', $t) : $this->CI->db->or_like('postTitle', $t);
$this->CI->db->or_like('tag', $t);
}
if ($activeQ) {
return $this->CI->db;
} else {
$rows = $this->CI->db->limit($limit + count($exception))
->get()->result();
return array_filter($rows, function ($row) use ($exception) {
if ($exception && count($exception)) {
$duplicated = false;
foreach ($exception as $ex) {
$duplicated = $row->postID == $ex;
}
return !$duplicated;
}
return true;
});
}
}
private function clean($string)
{
return trim(preg_replace('/[^\x{1100}-\x{11FF}\x{3130}-\x{318F}\x{AC00}-\x{D7AF}0-9a-zA-Z\s]/u', "", $string));
}
}