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; }
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; }
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']); } } }
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; }
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)); }
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; }
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; }
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; }