Exemplo n.º 1
0
function pick_seo_replace($info, $bbs = 1)
{
    if (!$info) {
        return;
    }
    include_once libfile('function/home');
    $set = pick_common_get();
    $key_arr = array('push_title_header', 'push_title_footer', 'push_content_header', 'push_content_body', 'push_content_footer', 'push_reply_header', 'push_reply_body', 'push_reply_footer');
    foreach ($key_arr as $v) {
        ${$v} = format_wrap($set[$v]);
    }
    $info_key = array('title', 'content', 'reply');
    $hide = $bbs == 1 ? 0 : 1;
    foreach ($info_key as $v) {
        if (!$info[$v]) {
            continue;
        }
        if ($v != 'title') {
            //添加随机隐藏内容
            $rand_arr_key = 'push_' . $v . '_body';
            if (${$rand_arr_key}) {
                $rand_arr = implode('*_*', ${$rand_arr_key});
                $info[$v] = preg_replace("/\r\n|\n|\r/e", "pick_jammer('', '{$rand_arr}', {$bbs})", $info[$v]);
                $info[$v] = preg_replace("/<\\/p>|<\\/P>/e", "pick_jammer('</p>', '{$rand_arr}', {$bbs})", $info[$v]);
            }
        }
        $header_arr = 'push_' . $v . '_header';
        $header_arr = ${$header_arr};
        $header = $header_arr[array_rand($header_arr)];
        $footer_arr = 'push_' . $v . '_footer';
        $footer_arr = ${$footer_arr};
        $footer = $footer_arr[array_rand($footer_arr)];
        $info[$v] = $header . $info[$v];
        $info[$v] .= $footer;
        if ($v == 'title') {
            $info[$v] = getstr(trim($info[$v]), 80, 1, 1);
        }
    }
    return $info;
}
Exemplo n.º 2
0
function dom_get_str($html, $rules)
{
    if (!$html) {
        return false;
    }
    $rules = str_replace(array('\\{', '\\}'), array('{UUU', 'UUU}'), $rules);
    $c_arr = $r = $text_arr = array();
    if (strexists($rules, '{') && strexists($rules, '}')) {
        preg_match_all("/\\{(.*)?}/isU", $rules, $c_arr, PREG_SET_ORDER);
        foreach ($c_arr as $k => $v) {
            $r['search'][] = $v[0];
            $c_dom_arr[] = $v[1];
        }
    } else {
        $c_dom_arr = format_wrap($rules);
    }
    if ($c_dom_arr) {
        foreach ($c_dom_arr as $k => $v) {
            preg_match_all('/\\w+\\[[^]]+]|[^\\s]+/', $v, $v_s_arr);
            $v_arr = $v_s_arr[0];
            $i = 0;
            $all = count($v_arr);
            $html_obj = $html;
            do {
                $v_rules = $v_arr[$i];
                if (!$v_rules) {
                    break;
                }
                if (strexists($v_rules, '[*]')) {
                    $index = -1;
                    $v_rules = str_replace('[*]', '', $v_rules);
                } else {
                    preg_match("/\\[(\\d)?]/is", $v_rules, $index_arr);
                    $index = $index_arr[1] ? $index_arr[1] : 0;
                    $v_rules = $index_arr[0] ? str_replace($index_arr[0], '', $v_rules) : $v_rules;
                }
                if ($html_obj) {
                    foreach ($html_obj->find($v_rules) as $index_i => $child) {
                        if ($index == -1) {
                            $text_arr[] = $child->innertext;
                        } else {
                            if ($index_i == $index) {
                                if ($i == $all - 1) {
                                    $text_arr[] = $child->innertext;
                                    unset($html_obj);
                                } else {
                                    $html_obj = $child;
                                }
                                break;
                            }
                        }
                    }
                }
                //$html_obj = $child;
                $i++;
            } while ($v_rules);
        }
        unset($div);
    }
    $rules = str_replace(array('{UUU', 'UUU}'), array('{', '}'), $rules);
    if ($r['search']) {
        $r['replace'] = $text_arr;
        $text = str_replace($r['search'], $r['replace'], $rules);
    } else {
        $text = implode('', $text_arr);
    }
    return $text;
}
Exemplo n.º 3
0
 function viewthread_bottom_output()
 {
     global $_G, $postlist, $navtitle;
     if ($this->pick_set['open_seo'] != 1) {
         return;
     }
     $this->pick_set['open_seo_mod'] = unserialize($this->pick_set['open_seo_mod']);
     if (!in_array(2, $this->pick_set['open_seo_mod'])) {
         return;
     }
     $this->pick_set['push_content_body_arr'] = format_wrap($this->pick_set['push_content_body']);
     $this->pick_set['push_reply_body_arr'] = format_wrap($this->pick_set['push_reply_body']);
     foreach ($postlist as $pid => $post) {
         if ($post['first'] == 1) {
             $seo_arr = $this->_article_seo_output(array('title' => $post['subject'], 'content' => $post['message']));
             $postlist[$pid]['message'] = $seo_arr['content'];
             $short_title = cutstr($seo_arr['title'], 52);
             $navtitle = str_replace($post['subject'], $seo_arr['title'], $navtitle);
             $_G['forum_thread']['short_subject'] = str_replace($_G['forum_thread']['short_subject'], $short_title, $_G['forum_thread']['short_subject']);
             $postlist[$pid]['subject'] = $seo_arr['title'];
         }
         if ($post['first'] == 1 && $this->pick_set['push_content_body_arr'] || $post['first'] != 1 && $this->pick_set['push_reply_body_arr']) {
             $postlist[$pid]['message'] = preg_replace("/<br \\/>|<br>/e", "\$this->_jammer(\$post['first'])", $postlist[$pid]['message']);
         }
     }
 }
Exemplo n.º 4
0
function field_merge($key, $value, $arr = array())
{
    $key_arr = format_wrap($key, '#');
    $value_arr = format_wrap($value, '#');
    array(milu_lang('b_year'), milu_lang('b_month'), milu_lang('b_day'));
    $combine_arr = array_combine($key_arr, $value_arr);
    unset($arr[$key]);
    $arr = $combine_arr ? array_merge($arr, $combine_arr) : $arr;
    return $arr;
}
Exemplo n.º 5
0
function get_rss_url($show = 1, $rss_url = '')
{
    pload('F:spider');
    $rss_url = $rss_url ? $rss_url : rpc_str($_GET['rss_url']);
    $url_arr = format_wrap($rss_url);
    $rss = get_rss_obj();
    $arr = $arr_new = array();
    foreach ((array) $url_arr as $k => $v) {
        $rs = $rss->Get(trim($v));
        //不去掉空格好像不行
        $items = $rs['items'];
        foreach ((array) $items as $k1 => $v1) {
            $arr[] = $v1['link'];
        }
        $arr_new = array_merge($arr_new, $arr);
        unset($arr);
    }
    if ($show != 1) {
        return $arr_new;
    }
    $link_html = windos_show_link($arr_new);
    show_pick_window(milu_lang('get_link_list_test'), $link_html, array('w' => 620, 'h' => '400', 'f' => 1));
}
Exemplo n.º 6
0
function show_var_html($key, $args, $now_v)
{
    //print_r($args);
    global $_G;
    $long_text = $_G['cache']['evn_milu_pick']['long_text'];
    $type = $args['var_type'][$key];
    $title = $args['var_title'][$key];
    $desc = $args['var_desc'][$key];
    $ext_select = $args['var_ext_select'][$key];
    $ext_keyword = $args['var_ext_keyword'][$key];
    if (!filter_something($title, $long_text)) {
        $text_class = 'longtxt';
    } else {
        $text_class = 'txt';
    }
    $tr_start = '<tr><td colspan="2" class="td27" s="1"><span class="vtop rowform">' . $title . ':</span></td></tr><tr  class="noborder"><td class="vtop rowform">';
    if ($type == 'text') {
        $body = '<input type="text" value="' . $now_v . '" id="rules_var_' . $key . '" class="' . $text_class . '" name="rules_var[' . $key . ']">';
        if ($ext_keyword) {
            $body .= show_keyword_html($key);
        }
    } else {
        if ($type == 'textarea') {
            $body = '<textarea  class="tarea" cols="50" id="rules_var_' . $key . '" name="rules_var[' . $key . ']" onkeyup="textareasize(this, 0)" ondblclick="textareasize(this, 1)" rows="6">' . $now_v . '</textarea>';
            if ($ext_keyword) {
                $body .= show_keyword_html($key);
            }
        } else {
            if ($type == 'select' || $type == 'selects') {
                $select_arr = format_wrap($ext_select);
                if (!$select_arr) {
                    $body = milu_lang('no_set_value');
                }
                $multiple = $type == 'selects' ? 'multiple="multiple" style=" width:250px;" name="rules_var[' . $key . '][]"' : 'name="rules_var[' . $key . ']"';
                $body = '<select  ' . $multiple . ' id="rules_var_' . $key . '">';
                foreach ($select_arr as $k => $v) {
                    $v_arr = explode('=', $v);
                    $selected = '';
                    if (is_array($now_v)) {
                        if (in_array($v_arr[0], $now_v)) {
                            $selected = 'selected="selected"';
                        }
                    } else {
                        if ($v_arr[0] == $now_v) {
                            $selected = 'selected="selected"';
                        }
                    }
                    $body .= '<option ' . $selected . '  value="' . $v_arr[0] . '">' . $v_arr[1] . '</option>';
                }
                $body .= '</select>';
            }
        }
    }
    $tr_end = '<td s="1" class="vtop tips2">' . $desc . '</td></tr>';
    $html = $tr_start . $body . $tr_end;
    return $html;
}
Exemplo n.º 7
0
function get_rand_uid($set_arr, $type = 'public')
{
    global $_G;
    $public_uid = $set_arr[$type . '_uid'];
    if ($set_arr['uid']) {
        $sql = 'AND uid != ' . $set_arr['uid'];
    }
    if (count($set_arr['reply']) > 0 && $type == 'reply' && !$public_uid && $set_arr['is_public_reply'] == 1) {
        $max_uid = DB::result(DB::query("SELECT MAX(uid) FROM " . DB::table('common_member') . " WHERE uid = '{$uid}' "), 0);
        $public_uid = '1,' . $max_uid;
    }
    $num = 1 + count($set_arr['reply']);
    $limit_str = $num == 1 ? "limit 1" : "limit 1,{$num}";
    $set_arr[$type . '_uid_type'] = $set_arr[$type . '_uid_type'] ? $set_arr[$type . '_uid_type'] : $set_arr['p_arr'][$type . '_uid_type'];
    if ($set_arr[$type . '_uid_type'] == 1) {
        //用户组
        $uid_group_arr = dunserialize($set_arr[$type . '_uid_group']);
        $g_sql = '';
        if ($uid_group_arr[0]) {
            $g_sql = " WHERE groupid IN (" . dimplode($uid_group_arr) . ") ";
        } else {
            $g_sql = " WHERE groupid!=9 ";
        }
        $query = DB::query("SELECT uid,username FROM " . DB::table('common_member') . $g_sql . " ORDER BY rand() {$limit_str}");
        while ($v = DB::fetch($query)) {
            $arr[] = $v;
        }
    } else {
        if (strexists($public_uid, '|')) {
            $uid_arr = explode('|', $public_uid);
            $uid_arr = array_filter($uid_arr);
            $query = DB::query("SELECT uid,username FROM " . DB::table('common_member') . " WHERE uid IN (" . dimplode($uid_arr) . ") " . $sql . " AND groupid!=9 ORDER BY rand() {$limit_str}");
            while ($v = DB::fetch($query)) {
                $arr[] = $v;
            }
        } else {
            if (strexists($public_uid, ',')) {
                $range_arr = format_wrap($public_uid, ',');
                $max = intval($range_arr[1]);
                $min = intval($range_arr[0]);
                if (!$max || !$min || $max < 0 || $min < 0 || $max - $min < 0) {
                    return $now_arr;
                }
                $query = DB::query("SELECT uid,username FROM " . DB::table('common_member') . " WHERE uid<{$max} AND uid>{$min} " . $sql . " AND groupid!=9 ORDER BY rand() {$limit_str}");
                while ($v = DB::fetch($query)) {
                    $arr[] = $v;
                }
            } else {
                //只填一个
                $info = get_user_info($public_uid);
                $now_arr[0]['uid'] = $info['uid'];
                $now_arr[0]['username'] = $info['username'];
                if ($num == 1) {
                    return $now_arr;
                }
                for ($i = 1; $i < $num + 1; $i++) {
                    $arr[] = $now_arr[0];
                }
            }
        }
    }
    if (!$arr[0]['uid']) {
        $now_arr[0]['uid'] = $_G['uid'];
        $now_arr[0]['username'] = $_G['username'];
        return $now_arr;
    }
    return $arr;
}
Exemplo n.º 8
0
 function check_visit_url()
 {
     global $_G;
     $this->format_url();
     $evo_rules = $_G['cache']['evn_milu_pick']['evo_rules'];
     $no_url = $evo_rules['no_url'];
     if (!filter_something($this->now_url, $no_url, TRUE)) {
         return FALSE;
     }
     if ($this->p_arr['page_fiter'] == 1 && $this->now_level < $this->max_level) {
         //开启了网址过滤器 入口地址不要过滤
         //这里有个bug,就是某些url不知道为何now_level等于max_level,导致这来没过滤
         if ($this->p_arr['page_url_no_other']) {
             //要过滤的网址
             $user_no_arr = format_wrap(trim($this->p_arr['page_url_no_other']));
             $user_no_arr = $this->format_url($user_no_arr);
             if (in_array($this->now_url, $user_no_arr)) {
                 return -1;
             }
         }
         if (filter_something($this->now_url, $this->p_arr['page_url_contain'])) {
             return -2;
         }
         //必须包含
         if (!filter_something($this->now_url, $this->p_arr['page_url_no_contain'], TRUE)) {
             return -3;
         }
         //不包含
     }
     if ($this->p_arr['rules_type'] == 3) {
         $this->p_arr['only_in_domain'] = $this->p_arr['only_in_domain'] ? $this->p_arr['only_in_domain'] : 1;
         if ($this->p_arr['only_in_domain'] == 0 && !strexists($this->now_url, $this->base_url)) {
             return -4;
         }
         //指定域名内
     }
     if (!$_GET['no_check_url']) {
         $v_info = DB::fetch_first('SELECT uid FROM ' . DB::table('strayer_url') . " WHERE  pid='" . $this->pid . "' AND hash='" . md5(daddslashes($this->now_url)) . "'");
         if ($v_info && $this->now_level == 1) {
             return -5;
         }
         //有些列表还是要重复访问的
     }
     return 1;
 }