Esempio n. 1
0
$search_cat = $cat_id;
$search_id = array();
if ($search_user != "" && $show_result == 1) {
    $search_user = str_replace('*', '%', trim($search_user));
    $sql = "SELECT " . get_user_table_field("", "user_id") . "\n          FROM " . USERS_TABLE . "\n          WHERE " . get_user_table_field("", "user_name") . " LIKE '{$search_user}'";
    $result = $site_db->query($sql);
    $search_id['user_ids'] = "";
    if ($result) {
        while ($row = $site_db->fetch_array($result)) {
            $search_id['user_ids'] .= ($search_id['user_ids'] != "" ? ", " : "") . $row[$user_table_fields['user_id']];
        }
        $site_db->free_result($result);
    }
}
if ($search_keywords != "" && $show_result == 1) {
    $split_words = prepare_searchwords_for_search($search_keywords);
    $match_field_sql = $search_fields != "all" && isset($search_match_fields[$search_fields]) ? "AND m." . $search_match_fields[$search_fields] . " = 1" : "";
    $search_word_cache = array();
    for ($i = 0; $i < sizeof($split_words); $i++) {
        if ($split_words[$i] == "and" || $split_words[$i] == "und" || $split_words[$i] == "or" || $split_words[$i] == "oder" || $split_words[$i] == "not") {
            $search_word_cache[$i] = $search_terms ? "and" : $split_words[$i];
        } else {
            $curr_words = $split_words[$i];
            if (!is_array($curr_words)) {
                $curr_words = array($curr_words);
            }
            $where = array();
            foreach ($curr_words as $curr_word) {
                $where[] = "w.word_text LIKE '" . addslashes(str_replace("*", "%", $curr_word)) . "'";
            }
            $sql = "SELECT m.image_id\n              FROM (" . WORDLIST_TABLE . " w, " . WORDMATCH_TABLE . " m)\n              WHERE (" . implode(' OR ', $where) . ")\n              AND m.word_id = w.word_id\n              {$match_field_sql}";
Esempio n. 2
0
function prepare_searchwords($val, $for_search = false)
{
    // Backwards compatibility
    if ($for_search) {
        return prepare_searchwords_for_search($val);
    }
    if (!is_array($val)) {
        $val = clean_search_word($val);
        $val = normalize_search_word($val);
        $val = str_replace("*", "", $val);
        if (empty($val)) {
            return array();
        }
        $split_words = preg_split("/\\s+/", $val);
    } else {
        $split_words = $val;
        $split_words = array_map('clean_search_word', $split_words);
        $split_words = array_unique(array_filter($split_words));
    }
    $stopword_list = get_stopwords();
    $clean_words = array();
    foreach ($split_words as $word) {
        $word = trim($word);
        if ($word == "") {
            continue;
        }
        if ($word == "and" || $word == "und" || $word == "or" || $word == "oder" || $word == "not") {
            continue;
        }
        $len = strlen(preg_replace("/&(#[0-9]+|[a-z]+);/siU", "_", $word));
        if ($len >= MIN_SEARCH_KEYWORD_LENGTH && $len <= MAX_SEARCH_KEYWORD_LENGTH && !in_array($word, $stopword_list)) {
            $clean_words[] = $word;
        }
    }
    return $clean_words;
}