function format_member_data($data_arr) { foreach ($data_arr as $k2 => $value) { $re_arr[$k2] = $value; if ($k2 == 'birthyear#birthmonth#birthday') { //生日 $re_arr['birthyear'] = strcut('a' . $value, 'a', milu_lang('year')); $re_arr['birthmonth'] = strcut($value, milu_lang('year'), milu_lang('month')); $re_arr['birthday'] = strcut($value, milu_lang('month'), milu_lang('day')); unset($re_arr[$k2]); } if ($k2 == 'birthprovince#birthcity#birthdist#birthcommunity' || $k2 == 'resideprovince#residecity#residedist#residecommunity#residesuite') { //出生地 || 居住地 $split_arr = explode(' ', $value); $key_arr = explode('#', $k2); $combine_arr = array_combine($key_arr, $split_arr); $re_arr = $combine_arr ? array_merge($re_arr, $combine_arr) : $re_arr; unset($re_arr[$k2]); } if ($k2 == 'regdate' || $k2 == 'lastvisit' || $k2 == 'lastactivity' || $k2 == 'lastpost') { $re_arr[$k2] = strtotime($re_arr[$k2]); } //处理时间 //个人主页 if ($k2 == 'site') { $re_arr[$k2] = _striptext($re_arr[$k2]); } } return $re_arr; }
function forum_downremotefile($arr, $old_arr) { global $_G; $evo_img_no = $_G['cache']['evn_milu_pick']['evo_img_no']; $config = get_pick_set(); $get_file_ext_arr = $config['get_file_ext'] ? explode('|', $config['get_file_ext']) : array(); $arr['is_download_file'] = $arr['is_download_file'] ? $arr['is_download_file'] : $arr['p_arr']['is_download_file']; $arr['message'] = dstripslashes($arr['content']); //print_r($arr); //$arr['message'] = str_replace(array("\r", "\n"), array($_GET['wysiwyg'] ? '<br />' : '', "\\n"), $arr['message']); preg_match_all("/\\[img\\]\\s*([^\\[\\<\r\n]+?)\\s*\\[\\/img\\]|\\[img=\\d{1,4}[x|\\,]\\d{1,4}\\]\\s*([^\\[\\<\r\n]+?)\\s*\\[\\/img\\]/is", $arr['message'], $image1, PREG_SET_ORDER); //preg_match_all("/\<img.+src=('|\"|)?(.*)(\\1)([\s].*)?\>/ismUe", $arr['message'], $image2, PREG_SET_ORDER); preg_match_all("/\\<img.+src=('|\"|)?(.*)(\\1)(.*)?\\>/isU", $arr['message'], $image2, PREG_SET_ORDER); $temp = $aids = $existentimg = $attach_arr = array(); if (is_array($image1) && !empty($image1)) { foreach ($image1 as $value) { $v = trim(!empty($value[1]) ? $value[1] : $value[2]); $no_remote = 0; if (!filter_something($v, $evo_img_no)) { //存在 $no_remote = 1; } if ($no_remote == 0) { $temp[] = array('0' => $value[0], '1' => $v); } } } if (is_array($image2) && !empty($image2)) { foreach ($image2 as $v) { $no_remote = 0; $v[2] = trim(strip_tags($v[2])); if (!filter_something($v[2], $evo_img_no)) { //存在 $no_remote = 1; } if ($no_remote == 0) { $temp[] = array('0' => $v[0], '1' => $v[2]); } } } if ($arr['is_download_file'] == 1) { $attach_arr = get_attach_data($arr['page_url'], $arr['message']); } $attach_arr = $attach_arr ? $attach_arr : array(); $temp = $temp ? $temp : array(); $temp = array_merge($temp, $attach_arr); //if(VIP) $arr['message'] = post($arr['message'], array('cookie' => $arr['cookie'], 'page_url' => $arr['page_url'], 'cid' => $arr['cid'])); $del_a = 0; if ($arr['content_filter_html'][0] == 0 && $arr['content_filter_html']) { $del_a = 1; } //print_r($arr['message']);exit(); require_once libfile('class/image'); if (is_array($temp) && !empty($temp)) { if (file_exists(libfile('class/upload'))) { require_once libfile('class/upload'); } else { require_once libfile('discuz/upload', 'class'); } $upload = new discuz_upload(); $attachaids = array(); $threadimage_flag = 0; $content_md5_arr = array(); foreach ($temp as $key => $value) { $snoopy_args['cookie'] = $arr['cookie']; $snoop_obj = get_snoopy_obj($snoopy_args); $imageurl = $value[1]; $hash = md5($imageurl); if (strlen($imageurl)) { $imagereplace['oldimageurl'][] = $value[0]; if (!isset($existentimg[$hash])) { $existentimg[$hash] = $imageurl; $attach['ext'] = $upload->fileext($imageurl); if ($upload->is_image_ext($attach['ext']) == 1 && $arr['is_download_img'] != 1) { $imagereplace['newimageurl'][] = $value[0]; continue; } if (!$upload->is_image_ext($attach['ext'])) { $ext = 'no_get'; } if (preg_match('/^(http:\\/\\/|\\.)/i', $imageurl)) { if ($imageurl && snoop_obj) { $content_re = get_img_content($imageurl, $snoop_obj, $ext); } if (is_array($content_re)) { $content = $content_re['content']; $file_name = $attach['name'] = $content_re['file_name'] ? $content_re['file_name'] : ($value[2] ? _striptext($value[2]) : time() . '.' . $content_re['file_ext']); $attach['ext'] = $content_re['file_ext'] ? $content_re['file_ext'] : trim($upload->fileext($file_name)); $file_name = $attach['name'] = $file_name; } else { $content = $content_re; } if (in_array(md5($content), $content_md5_arr)) { $imagereplace['newimageurl'][] = ''; continue; } $content_md5_arr[] = md5($content); } elseif (preg_match('/^(' . preg_quote(getglobal('setting/attachurl'), '/') . ')/i', $imageurl)) { $imagereplace['newimageurl'][] = $value[0]; } if (empty($content)) { if ($value[4] == 1) { if ($del_a == 1) { $imagereplace['newimageurl'][] = $value[2]; } else { unset($imagereplace['oldimageurl'][$key]); } } else { $imagereplace['newimageurl'][] = ''; } continue; } if (!$attach['name']) { $patharr = explode('/', $imageurl); $attach['name'] = trim($patharr[count($patharr) - 1]); } $patharr = explode('/', $imageurl); if (!$attach['name']) { $attach['name'] = trim($patharr[count($patharr) - 1]); } $attach['thumb'] = ''; $attach['ext'] = trim($attach['ext']); //不加这个有些还真不行 $attach['isimage'] = $upload->is_image_ext($attach['ext']); if ($attach['isimage'] == 1 && $arr['is_download_img'] != 1) { $imagereplace['newimageurl'][] = $value[0]; continue; } $attach['extension'] = $upload->get_target_extension($attach['ext']); $attach['attachdir'] = $upload->get_target_dir('forum'); $attach['attachment'] = $attach['attachdir'] . $upload->get_target_filename('forum') . '.' . $attach['extension']; $attach['target'] = getglobal('setting/attachdir') . './forum/' . $attach['attachment']; if (!in_array($attach['ext'], $get_file_ext_arr) && $get_file_ext_arr && $attach['isimage'] == 0) { if ($value[4] == 1) { if ($del_a == 1) { $imagereplace['newimageurl'][] = $value[2]; } else { unset($imagereplace['oldimageurl'][$key]); } } else { $imagereplace['newimageurl'][] = ''; } continue; } if (!@($fp = fopen($attach['target'], 'wb'))) { continue; } else { flock($fp, 2); fwrite($fp, $content); fclose($fp); } if (!$upload->get_image_info($attach['target']) && $attach['isimage'] == 1) { @unlink($attach['target']); continue; } $attach['size'] = filesize($attach['target']); $upload->attach = $attach; $thumb = $width = 0; if ($upload->attach['isimage']) { if ($_G['setting']['thumbstatus']) { $image = new image(); $thumb = $image->Thumb($upload->attach['target'], '', $_G['setting']['thumbwidth'], $_G['setting']['thumbheight'], $_G['setting']['thumbstatus'], $_G['setting']['thumbsource']) ? 1 : 0; $width = $image->imginfo['width']; } if ($_G['setting']['thumbsource'] || !$_G['setting']['thumbstatus']) { list($width) = @getimagesize($upload->attach['target']); } if ($_G['setting']['watermarkstatus'] && empty($_G['forum']['disablewatermark']) && $arr['is_water_img'] == 1) { $image = new image(); $image->Watermark($attach['target'], '', 'forum'); } } $desc = $value[3]; $arr['public_time'] = $arr['public_time'] ? $arr['public_time'] : $arr['dateline']; $arr['public_time'] = $arr['public_time'] ? $arr['public_time'] : $_G['timestamp']; $remote = 0; $setarr = array('uid' => $arr['uid'], 'tid' => $arr['tid'], 'pid' => $arr['pid'], 'filename' => daddslashes($upload->attach['name']), 'attachment' => $upload->attach['attachment'], 'filesize' => $upload->attach['size'], 'thumb' => $thumb, 'remote' => $remote, 'picid' => $picid, 'isimage' => $attach['isimage'], 'description' => $desc, 'readperm' => 0, 'price' => 0, 'width' => $width, 'dateline' => $arr['public_time']); $setimg_arr = array('tid' => $arr['tid'], 'attachment' => $upload->attach['attachment'], 'remote' => $remote); $set_att = array('downloads' => rand(1, 15), 'tableid' => getattachtableid($arr['tid']), 'uid' => $arr['uid'], 'pid' => $arr['pid'], 'tid' => $arr['tid']); if ($threadimage_flag == 0 && !$arr['is_post'] && $attach['isimage'] == 1) { DB::insert('forum_threadimage', $setimg_arr, true); $threadimage_flag = 1; } $setarr['aid'] = $newaids[] = DB::insert('forum_attachment', $set_att, true); $at[] = $setarr['aid']; $attachnew_arr[$setarr['aid']] = array('description' => $setarr['description']); DB::insert(getattachtablebytid($arr['tid']), $setarr, true); $attachaids[$hash] = $imagereplace['newimageurl'][] = '[attach]' . $setarr['aid'] . '[/attach]'; } else { $imagereplace['newimageurl'][] = $attachaids[$hash]; } } } if ($_G['setting']['ftp']['on'] == 1) { require_once libfile('function/post'); ftpupload($newaids, $arr['uid']); } if (count($at) > 0) { $arr['attachment'] = 2; } $arr['message'] = str_replace($imagereplace['oldimageurl'], $imagereplace['newimageurl'], $arr['message']); if ($del_a == 1) { $arr['message'] = clear_html_script($arr['message'], array(0)); } forum_article_content($arr); } }
function get_title() { $title_info = array(); if (!$this->title_arr) { if (strexists($this->ori_title, ' - ')) { $title_arr = explode(' - ', $this->ori_title); } else { if (strexists($this->ori_title, '-')) { $title_arr = explode('-', $this->ori_title); } else { if (strexists($this->ori_title, '_')) { $title_arr = explode('_', $this->ori_title); } else { if (strexists($this->ori_title, '|')) { $title_arr = explode('|', $this->ori_title); } else { $title_info['html'] = $this->ori_title; return $title_info; } } } } $title_info['html'] = $title_arr[0]; return $title_info; } else { foreach ($this->title_arr as $k => $v) { $title_lekely_lenth[$k] = strlen(trim($v)); $_title_lekely[$k] = strlen(_striptext(trim($v))); } arsort($_title_lekely); if (is_array($_title_lekely) && count($_title_lekely) > 2) { $_key = key(array_count_values($_title_lekely)); if ($_key) { $_title_lekely_re = array_keys($_title_lekely, key(array_count_values($_title_lekely))); } } if (is_array($_title_lekely_re) && $_title_lekely_re) { foreach ($_title_lekely_re as $k => $v) { if (!$max_title) { $max_title = $v; } if ($title_lekely_lenth[$v] > $title_lekely_lenth[$max_title]) { $max_title = $v; } } } else { $key_arr = array_keys($_title_lekely); $max_title = $key_arr[0]; } $title_lenth_arr = array_keys($title_lekely_lenth); $title_info['html'] = $this->title_arr[$max_title]; $title_info['key'] = $max_title; return $title_info; } }
function check_article($arr) { global $_G; $evo_rules = $_G['cache']['evn_milu_pick']['evo_rules']; if (!$this->temp_arr['have_reply']) { $this->temp_arr['have_reply'] = 2; $this->get_pick_status(1); } $this->status_arr['now'] = $this->status_arr['now'] - 1; $this->status_arr = array_merge($this->msg_args, $this->status_arr); if ($arr['content'] == 'list') { show_pick_info(milu_lang('is_page_web'), 'err', $this->status_arr); return FALSE; } $arr['title'] = trim($arr['title']); if (!$arr['title']) { show_pick_info(milu_lang('no_get_title'), 'err', $this->status_arr); return FALSE; } $title_len = strlen(_striptext(trim($arr['title']))); if ($title_len < 1) { show_pick_info(milu_lang('title_too_short'), 'err', $this->status_arr); return FALSE; } if (strlen($arr['title']) < $this->min_title_len) { show_pick_info(milu_lang('so_short_title'), 'err', $this->status_arr); return FALSE; } if (array_key_exists('evo', $arr)) { if ($arr['evo'] != 2) { if (!$arr['evo_title_info']) { show_pick_info(milu_lang('no_article_view'), 'err', $this->status_arr); //exit(); return FALSE; } if ($arr['evo'] == 0) { $link_count = own_link_count($arr['content'], $this->now_url); if ($link_count > $this->min_own_link) { show_pick_info(milu_lang('is_list_page'), 'err', $this->status_arr); return FALSE; } } } } $arr['content'] = trim($arr['content']); if (!$arr['content']) { show_pick_info(milu_lang('no_get_content'), 'err', $this->status_arr); return FALSE; } $content_len = strlen($arr['content']); if ($content_len < $this->p_arr['article_min_len'] * 2 && $this->p_arr['article_min_len']) { show_pick_info(milu_lang('data_too_short'), 'err', $this->status_arr); return FALSE; } if ($content_len > 600000) { show_pick_info(milu_lang('data_too_long'), 'err', $this->status_arr); return FALSE; } if ($this->p_arr['keyword_flag'] == 1) { //按关键词过滤 if (filter_something($arr['title'], $this->p_arr['keyword_title'])) { //必须包含 show_pick_info(milu_lang('title_must_keyword'), 'err', $this->status_arr); return FALSE; } if (!filter_something($arr['title'], $this->p_arr['keyword_title_exclude'], TRUE)) { //不包含 show_pick_info(milu_lang('title_no_must_keyword'), 'err', $this->status_arr); return FALSE; } if (filter_something($arr['content'], $this->p_arr['keyword_content'])) { //必须包含 show_pick_info(milu_lang('content_must_keyword'), 'err', $this->status_arr); return FALSE; } if (!filter_something($arr['content'], $this->p_arr['keyword_content_exclude'], TRUE)) { //不包含 show_pick_info(milu_lang('content_no_must_keyword'), 'err', $this->status_arr); return FALSE; } } return TRUE; }