function getdotstring($string, $vartype, $allownull = false, $varscope = array(), $sqlmode = 1, $unique = true) { if (is_array($string)) { $stringarr = $string; } else { if (substr($string, 0, 1) == '$') { return $string; } $string = str_replace(',', ',', $string); $string = str_replace(' ', ',', $string); $stringarr = explode(',', $string); } $newarr = array(); foreach ($stringarr as $value) { $value = trim($value); if ($vartype == 'int') { $value = intval($value); } if (!empty($varscope)) { if (in_array($value, $varscope)) { $newarr[] = $value; } } else { if ($allownull) { $newarr[] = $value; } else { if (!empty($value)) { $newarr[] = $value; } } } } if ($unique) { $newarr = sarray_unique($newarr); } if ($vartype == 'int') { $string = implode(',', $newarr); } else { if ($sqlmode) { $string = '\'' . implode('\',\'', $newarr) . '\''; } else { $string = implode(',', $newarr); } } return $string; }
function get_content_page($url, $content, $rules) { $base_url = get_base_url($content); $base_url = $base_url ? $base_url : $url; if ($rules['content_page_get_type'] == 1) { $html = get_htmldom_obj($content); if (!$html) { return false; } foreach ($html->find($rules['content_page_rules']) as $v) { $a_url = convert_url($v->attr['href']); if (!$a_url || $a_url == '#' || $v->innertext == milu_lang('up_page')) { continue; } $item[] = _expandlinks($a_url, $base_url); $re_arr = sarray_unique($item); } $html->clear(); unset($html); } else { $re_arr = string_page_link($content, $rules['content_page_rules'], $url); //字符串 } return $re_arr; }
function pregmessagearray($messagetext, $rulearr, $mnum, $getpage = 0, $getsubject = 0, $msgurl = '') { global $_SGLOBAL, $alang; if ($getsubject) { $mnum = $mnum + 1; } $msgarr = array('subject' => '', 'dateline' => '', 'itemfrom' => '', 'author' => '', 'message' => '', 'importcatid' => $rulearr['importcatid'], 'importtype' => $rulearr['importtype'], 'pagearr' => array(), 'picarr' => array(), 'flasharr' => array(), 'patharr' => array()); $nextprogress = true; #Modify by jiangyanfeng $msgarr['newsfromurl'] = $msgurl; #End //文章标题识别 if ($getsubject && $messagetext && !empty($rulearr['subjectrule'])) { $subjectarr = pregmessage($messagetext, $rulearr['subjectrule'], 'subject'); $msgarr['subject'] = $subjectarr[0]; } //文章标题过滤 if ($getsubject && $msgarr['subject'] && !empty($rulearr['subjectfilter'])) { $rule = convertrule($rulearr['subjectfilter']); $msgarr['subject'] = preg_replace("/({$rule})/s", '', $msgarr['subject']); } //文章标题文字替换 if ($getsubject && $msgarr['subject'] && !empty($rulearr['subjectreplace'])) { $rulearr['subjectreplace'] = explode("\n", $rulearr['subjectreplace']); $rulearr['subjectreplaceto'] = explode("\n", $rulearr['subjectreplaceto']); $msgarr['subject'] = stringreplace($rulearr['subjectreplace'], $rulearr['subjectreplaceto'], $msgarr['subject']); } //文章标题包含关键字 if ($getsubject && $msgarr['subject'] && !empty($rulearr['subjectkey'])) { $rule = convertrule($rulearr['subjectkey']); $newsubject = preg_replace("/({$rule})/s", '', $msgarr['subject']); if ($newsubject == $msgarr['subject']) { showprogress('[' . $mnum . '] ' . $msgarr['subject'] . ' ' . $alang['robot_robot_subject_no_key']); $nextprogress = false; $msgarr['subject'] = ''; } } //文章标题关键字剔除过滤 if ($getsubject && $msgarr['subject'] && !empty($rulearr['subjectkeycancel'])) { $rule = convertrule($rulearr['subjectkeycancel']); $newsubject = preg_replace("/({$rule})/s", '', $msgarr['subject']); if ($newsubject != $msgarr['subject']) { showprogress('[' . $mnum . '] ' . $msgarr['subject'] . ' ' . $alang['robot_robot_subject_key_cancel']); $nextprogress = false; $msgarr['subject'] = ''; } } $msgarr['subject'] = trim($msgarr['subject']); if ($getsubject && $nextprogress && empty($msgarr['subject'])) { showprogress('[' . $mnum . '] ' . $alang['robot_robot_subject_null']); $nextprogress = false; } if ($getsubject && $nextprogress && !$rulearr['subjectallowrepeat']) { $query = $_SGLOBAL['db']->query('SELECT COUNT(*) FROM ' . tname('robotlog') . ' WHERE hash=\'' . md5($msgarr['subject']) . '\''); if ($_SGLOBAL['db']->result($query, 0)) { showprogress('[' . $mnum . '] ' . $msgarr['subject'] . ' ' . $alang['robot_robot_subject_exists']); $nextprogress = false; } } if ($nextprogress && $getsubject && $msgarr['subject']) { showprogress('[' . $mnum . '] [<b>' . $msgarr['subject'] . '</b>] ' . $alang['robot_robot_deal'] . '<b>' . '<b>' . $alang['robot_robot_subject'] . '</b>' . $alang['robot_robot_success']); } if (!$nextprogress) { $msgarr['subject'] = ''; } //DATELINE if (empty($rulearr['defaultdateline'])) { $msgarr['dateline'] = $_SGLOBAL['timestamp']; } else { $msgarr['dateline'] = intval($rulearr['defaultdateline']); } //信息来源识别 if ($getsubject && $nextprogress && !empty($rulearr['fromrule'])) { if (preg_match("/\\[from\\]/", $rulearr['fromrule'])) { $fromarr = pregmessage($messagetext, $rulearr['fromrule'], 'from'); } else { $fromarr[0] = $rulearr['fromrule']; } $msgarr['itemfrom'] = $fromarr[0]; if ($msgarr['itemfrom']) { showprogress('[' . $mnum . '] [<b>' . $msgarr['itemfrom'] . '</b>] ' . $alang['robot_robot_deal'] . '<b>' . $alang['robot_robot_itemfrom'] . '</b>' . $alang['robot_robot_success']); } else { showprogress('[' . $mnum . '] ' . $alang['robot_robot_deal'] . '<b>' . '<b>' . $alang['robot_robot_itemfrom'] . '</b>' . $alang['robot_robot_failed']); } } //作者识别 if ($getsubject && $nextprogress && !empty($rulearr['authorrule'])) { if (preg_match("/\\[author\\]/", $rulearr['authorrule'])) { $authorarr = pregmessage($messagetext, $rulearr['authorrule'], 'author'); } else { $rulearr['authorrule'] = explode('|', $rulearr['authorrule']); $rulearr['authorrule'] = strim($rulearr['authorrule']); if (is_array($rulearr['authorrule'])) { foreach ($rulearr['authorrule'] as $tmpkey => $tmpvalue) { if (empty($tmpvalue)) { unset($rulearr['authorrule'][$tmpkey]); } } $tmprand = 0; $tmprand = rand(0, count($rulearr['authorrule']) - 1); $authorarr[0] = $rulearr['authorrule'][$tmprand]; } else { $authorarr[0] = $rulearr['authorrule']; } } $msgarr['author'] = $authorarr[0]; if ($msgarr['author']) { showprogress('[' . $mnum . '] [<b>' . $msgarr['author'] . '</b>] ' . $alang['robot_robot_deal'] . '<b>' . $alang['robot_robot_author'] . '</b>' . $alang['robot_robot_success']); } else { showprogress('[' . $mnum . '] ' . $alang['robot_robot_deal'] . '<b>' . $alang['robot_robot_author'] . '</b>' . $alang['robot_robot_failed']); } } //发布者UID if ($getsubject && $nextprogress && !empty($rulearr['uidrule'])) { $rulearr['uidrule'] = explode('|', $rulearr['uidrule']); $rulearr['uidrule'] = strim($rulearr['uidrule']); if (is_array($rulearr['uidrule'])) { foreach ($rulearr['uidrule'] as $tmpkey => $tmpvalue) { if (empty($tmpvalue)) { unset($rulearr['uidrule'][$tmpkey]); } } $tmprand = 0; $tmprand = rand(0, count($rulearr['uidrule']) - 1); $msgarr['uid'] = intval($rulearr['uidrule'][$tmprand]); } else { $msgarr['uid'] = intval($rulearr['uidrule']); } } //文章内容识别 if ($nextprogress && !empty($rulearr['messagerule'])) { if (empty($rulearr['messagerule'])) { $rsmessagearr = getrobotmessage($messagetext, $msgurl, 2); $messagearr[0] = $rsmessagearr['leachmessage']; } else { $messagearr = pregmessage($messagetext, $rulearr['messagerule'], 'message'); } $msgarr['message'] = $messagearr[0]; } //文章内容过滤 if ($nextprogress && $msgarr['message'] && !empty($rulearr['messagefilter'])) { $rule = convertrule($rulearr['messagefilter']); $msgarr['message'] = preg_replace("/({$rule})/s", '', $msgarr['message']); } //文章内容文字替换 if ($nextprogress && $msgarr['message'] && !empty($rulearr['messagereplace'])) { $rulearr['messagereplace'] = explode("\n", $rulearr['messagereplace']); $rulearr['messagereplaceto'] = explode("\n", $rulearr['messagereplaceto']); $msgarr['message'] = stringreplace($rulearr['messagereplace'], $rulearr['messagereplaceto'], $msgarr['message']); } //文章内容包含关键字 if ($nextprogress && $msgarr['message'] && !empty($rulearr['messagekey'])) { $rule = convertrule($rulearr['messagekey']); $newmessage = preg_replace("/({$rule})/s", '', $msgarr['message']); if ($newmessage == $msgarr['message']) { showprogress('[' . $mnum . '] ' . $msgarr['subject'] . ' ' . $alang['robot_robot_message_no_key']); $nextprogress = false; $msgarr['message'] = ''; } } //文章内容关键字剔除过滤 if ($nextprogress && $msgarr['message'] && !empty($rulearr['messagekeycancel'])) { $rule = convertrule($rulearr['messagekeycancel']); $newmessage = preg_replace("/({$rule})/s", '', $msgarr['message']); if (md5($newmessage) != md5($msgarr['message'])) { showprogress('[' . $mnum . '] ' . $msgarr['subject'] . ' ' . $alang['robot_robot_message_key_cancel']); $nextprogress = false; $msgarr['message'] = ''; } } //文章内容格式化 if ($nextprogress && $msgarr['message'] && !empty($rulearr['messageformat'])) { $rsmessagearr = getrobotmessage($msgarr['message'], $msgurl); $msgarr['message'] = $rsmessagearr['leachmessage']; } if ($nextprogress) { if ($msgarr['message']) { showprogress('[' . $mnum . '] ' . $alang['robot_robot_deal'] . '<b>' . $alang['robot_robot_message'] . '</b>' . $alang['robot_robot_success']); } else { $msgarr['subject'] = ''; $nextprogress = false; showprogress('[' . $mnum . '] ' . $alang['robot_robot_deal'] . '<b>' . $alang['robot_robot_message'] . '</b>' . $alang['robot_robot_failed']); } } //LOCAL PIC URL if ($nextprogress && (!empty($rulearr['picurllinkpre']) || $rulearr['savepic'])) { preg_match_all("/\\<img\\s+.*?src=[\\'\"]*([a-z0-9\\/\\-_+=.~!%@?#%&;:\$\\()|]+)[\\'\"\\s\\>]+/is", $msgarr['message'], $picurlarr); if (!empty($picurlarr[1])) { $msgarr['picarr'] = sarray_unique($picurlarr[1]); } if (!empty($rulearr['picurllinkpre'])) { foreach ($msgarr['picarr'] as $pickey => $picurl) { if (strpos($picurl, '://') === false) { $msgarr['picarr'][$pickey] = $rulearr['picurllinkpre'] . $picurl; $msgarr['message'] = str_replace($picurl, $rulearr['picurllinkpre'] . $picurl, $msgarr['message']); } } } else { $url = array(); $posturl = parse_url($msgurl); foreach ($msgarr['picarr'] as $pickey => $picurl) { if (!empty($picurl)) { $url = parse_url($picurl); if (!empty($url['host'])) { $msgarr['picarr'][$pickey] = $picurl; } else { $offset = strpos($picurl, '/'); if (!is_bool($offset) && $offset == 0) { $msgarr['picarr'][$pickey] = $posturl['scheme'] . '://' . $posturl['host'] . $picurl; } else { $msgarr['picarr'][$pickey] = substr($msgurl, 0, strrpos($msgurl, '/')) . '/' . $picurl; } } $msgarr['message'] = str_replace($picurl, $msgarr['picarr'][$pickey], $msgarr['message']); } } } if ($rulearr['savepic']) { $msgarr = saveurlarr($msgarr, 'picarr'); showprogress('[' . $mnum . '] ' . $alang['robot_robot_deal'] . '<b>' . $alang['robot_robot_picarr'] . '</b>' . $alang['robot_robot_success']); } } //LOCAL FLASH URL if ($nextprogress && (!empty($rulearr['picurllinkpre']) || $rulearr['saveflash'])) { preg_match_all("/\\<embed\\s+.*?src=[\\'\"]*([a-z0-9\\/\\-_+=.~!%@?#%&;:\$\\()|])[\\'\"\\s\\>]+/is", $msgarr['message'], $flashurlarr); if (!empty($flashurlarr[1])) { $msgarr['flasharr'] = sarray_unique($flashurlarr[1]); } if (!empty($rulearr['picurllinkpre'])) { foreach ($msgarr['flasharr'] as $flashkey => $flashurl) { if (strpos($flashurl, '://') === false) { $msgarr['flasharr'][$flashkey] = $rulearr['picurllinkpre'] . $flashurl; $msgarr['message'] = str_replace($flashurl, $rulearr['picurllinkpre'] . $flashurl, $msgarr['message']); } } } else { $url = array(); $posturl = parse_url($msgurl); foreach ($msgarr['flasharr'] as $flashkey => $flashurl) { if (!empty($flashurl)) { $url = parse_url($flashurl); if (!empty($url['host'])) { $msgarr['flasharr'][$flashkey] = $flashurl; } else { $offset = strpos($flashurl, '/'); if (!is_bool($offset) && $offset == 0) { $msgarr['flasharr'][$flashkey] = $posturl['scheme'] . '://' . $posturl['host'] . $flashurl; } else { $msgarr['flasharr'][$flashkey] = substr($msgurl, 0, strrpos($msgurl, '/')) . '/' . $flashurl; } } $msgarr['message'] = str_replace($flashurl, $msgarr['flasharr'][$flashkey], $msgarr['message']); } } } if ($rulearr['saveflash']) { $msgarr = saveurlarr($msgarr, 'flasharr'); showprogress('[' . $mnum . '] ' . $alang['robot_robot_deal'] . '<b>' . $alang['robot_robot_flasharr'] . '</b>' . $alang['robot_robot_success']); } } //PAGE URL if ($getpage && $nextprogress && !empty($rulearr['messagepagerule'])) { $messagepagearr = pregmessage($messagetext, $rulearr['messagepagerule'], 'pagearea'); $messagepage = $messagepagearr[0]; if ($messagepage && !empty($rulearr['messagepageurlrule'])) { $msgarr['pagearr'] = pregmessage($messagepage, $rulearr['messagepageurlrule'], 'page', -1); $msgarr['pagearr'] = sarray_unique($msgarr['pagearr']); } if ($msgarr['pagearr']) { if (!empty($rulearr['messagepageurllinkpre'])) { foreach ($msgarr['pagearr'] as $pkey => $purl) { if (strpos($purl, '://') === false) { $msgarr['pagearr'][$pkey] = $rulearr['messagepageurllinkpre'] . $purl; } } } else { $url = array(); $posturl = parse_url($msgurl); foreach ($msgarr['pagearr'] as $pkey => $purl) { if (!empty($purl)) { $url = parse_url($purl); if (!empty($url['host'])) { $msgarr['pagearr'][$pkey] = $purl; } else { $offset = strpos($purl, '/'); if (!is_bool($offset) && $offset == 0) { $msgarr['pagearr'][$pkey] = $posturl['scheme'] . '://' . $posturl['host'] . $purl; } else { $msgarr['pagearr'][$pkey] = substr($msgurl, 0, strrpos($msgurl, '/')) . '/' . $purl; } } } } } if (!empty($rulearr['messagepageurllinkpf'])) { foreach ($msgarr['pagearr'] as $pkey => $purl) { if (!empty($purl)) { $msgarr['pagearr'][$pkey] = $purl . $rulearr['messagepageurllinkpf']; } } } showprogress('[' . $mnum . '] ' . $alang['robot_robot_deal'] . '<b>' . $alang['robot_robot_pagearr'] . '</b>' . $alang['robot_robot_success']); } else { showprogress('[' . $mnum . '] ' . $alang['robot_robot_deal'] . '<b>' . $alang['robot_robot_pagearr'] . '</b>' . $alang['robot_robot_failed']); } } return $msgarr; }
$_POST['cronid'] = intval($_POST['cronid']); $_POST['name'] = shtmlspecialchars($_POST['name']); if (!is_readable(S_ROOT . './include/cron/' . $_POST['filename'])) { showmessage('cron_error_no_filename'); } if ($_POST['weekday'] != '-1') { $_POST['day'] = '-1'; } if (is_array($_POST['minute']) && $_POST['minute']) { foreach ($_POST['minute'] as $key => $var) { if ($var < 0 || $var > 59) { unset($_POST['minute'][$key]); } } sort($_POST['minute']); $_POST['minute'] = sarray_unique($_POST['minute']); } $postminute = implode("\t", $_POST['minute']); if ($_POST['weekday'] == -1 && $_POST['day'] == -1 && $_POST['hour'] == -1 && $postminute == '') { showmessage('cron_error_no_time'); } $sqlarr = array('name' => $_POST['name'], 'filename' => $_POST['filename'], 'available' => $_POST['available'], 'weekday' => $_POST['weekday'], 'day' => $_POST['day'], 'hour' => $_POST['hour'], 'minute' => $postminute); if (empty($_POST['cronid'])) { //ADD $insertsqlarr = $sqlarr; $insertsqlarr['type'] = 'user'; $insertsqlarr['nextrun'] = $_SGLOBAL['timestamp']; inserttable('crons', $insertsqlarr); //更新缓存 updatecronscache(); updatecroncache();
function test_window($get_type, $url_test, $is_fiter, $rules, $replace_rules, $filter_data, $show_type, $login_cookie, $filter_html_arr) { $url_test = rpc_str($url_test); $rules = rpc_str($rules); $replace_rules = rpc_str($replace_rules); $login_cookie = rpc_str(urlencode($login_cookie)); foreach ($filter_data as $k => $v) { if ($v) { $filter_data[$k][1] = rpc_str($v[1]); } } $filter_html_arr = sarray_unique($filter_html_arr); //去重 if ($show_type == 'title') { $show_name = milu_lang('title'); } else { if ($show_type == 'body') { $show_name = milu_lang('body'); } else { $show_name = milu_lang('reply'); } } $contents = get_contents($url_test, array('cookie' => $login_cookie)); $contents = dz_attach_format($url_test, $contents); $c_arr = format_article_imgurl($url_test, $contents); $contents = $c_arr['message']; if ($get_type == 1) { //dom if ($show_type == 'reply') { $result_data = dom_get_manytext($contents, $rules); } else { if ($show_type == 'title') { $dom_rules['title'] = $rules; } else { $dom_rules['content'] = $rules; } $re = dom_single_article($contents, $dom_rules); $result_data = $show_type == 'title' ? $re['title'] : $re['content']; } } else { if ($get_type == 2) { //字符串 if ($contents != -1) { if ($show_type == 'reply') { $rules = str_replace('[body]', '[reply]', $rules); $result_data = str_get_str($contents, $rules, $show_type, -1); unset($result_data[0]); } else { $result_data = str_get_str($contents, $rules, $show_type, 1); } } } else { //智能获取 if ($contents != -1) { $re = get_single_article($contents, $url_test); if ($show_type == 'title') { $result_data = $re['title']; } else { $result_data = $re['content']; } } } } if ($result_data == -1) { echo milu_lang('unable_pick'); return; } else { if ($result_data == -2) { echo milu_lang('get_time_out'); return; } } if (!$result_data) { echo milu_lang('no_get_data') . $show_name; return; } $format_args = array('is_fiter' => $is_fiter, 'show_type' => $show_type, 'result_data' => $result_data, 'replace_rules' => $replace_rules, 'filter_data' => $filter_data, 'test' => 1, 'filter_html' => $filter_html_arr); $result_data = filter_article($format_args); if ($show_type == 'reply') { $body = show_reply_output($result_data); } else { $body .= $result_data; } $body .= $notice; echo $body; }
} else { $tbodydisplay = 'none'; $thecfarr = array(); } $tbodynum++; $cfhtml .= '<tbody id="cf_' . $tbodynum . '" style="display:' . $tbodydisplay . '">'; foreach ($cfarr as $ckey => $cvalue) { $inputstr = ''; if (empty($thecfarr[$ckey])) { $thecfarr[$ckey] = ''; } $cfoptionarr = array(); if ($cvalue['type'] == 'select' || $cvalue['type'] == 'checkbox') { $cfoptionstr = $cvalue['option']; $coarr = explode("\n", $cfoptionstr); $coarr = sarray_unique($coarr); foreach ($coarr as $covalue) { $covalue = trim($covalue); $cfoptionarr[$covalue] = $covalue; } } switch ($cvalue['type']) { case 'input': $inputstr = '<input name="customfieldtext[' . $cfvalue['customfieldid'] . '][' . $ckey . ']" type="text" size="30" value="' . $thecfarr[$ckey] . '" />'; break; case 'textarea': $inputstr = '<textarea name="customfieldtext[' . $cfvalue['customfieldid'] . '][' . $ckey . ']" rows="5" cols="60">' . $thecfarr[$ckey] . '</textarea>'; break; case 'select': $inputstr = getselectstr('customfieldtext[' . $cfvalue['customfieldid'] . '][' . $ckey . ']', $cfoptionarr, $thecfarr[$ckey]); break;