Exemplo n.º 1
0
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;
}
Exemplo n.º 2
0
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);
    }
}
Exemplo n.º 3
0
 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;
     }
 }
Exemplo n.º 4
0
 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;
 }