// +---------------------------------------------------------------------- // 应用公共文件 function authcode($str) { $key = substr(md5('ThinkPHP.CN'), 5, 8); $str1 = substr(md5($str), 8, 10); return md5($key . $str1); } /** * 对象 转 数组 * * @param object $obj 对象 * @return array */ function object_to_array($obj) { $obj = (array)$obj; foreach ($obj as $k => $v) { if (gettype($v) == 'resource') { return; } if (gettype($v) == 'object' || gettype($v) == 'array') { $obj[$k] = (array)object_to_array($v); } } return $obj; } function choiseJabbr($article_id, $jabbr) { if ($article_id < 1799 && $jabbr == "Cancer Adv") { return "TMR Cancer"; } if ($article_id < 910 && $jabbr == "Microenviron Microecol Res") { return "Tumor Microenviron Res"; } if ($article_id < 1799 && $jabbr == "Med Theor Hypothesis") { return "TMR Theory Hypoth"; } if ($article_id < 1821 && $jabbr == "Clin Res Commun") { return "TMR Clin Res"; } if ($article_id < 1665 && $jabbr == "Aging Commun" && $article_id != 1612) { return "TMR Aging"; } if ($article_id < 1869 && $jabbr == "Nurs Commun") { return "TMR Integr Nurs"; } if ($article_id < 1981 && $jabbr == "Toxicol Adv") { return "Asian Toxicol Res"; } if ($article_id >= 1981 && $article_id < 2358 && $jabbr == 'Toxicol Adv') { return "Toxicol Commun"; } if ($article_id < 2190 && $jabbr == "Food Health") { return "Food Ther Health Care"; } if ($article_id < 2520 && $jabbr == "Chin Quintessence Res") { return "经典中医研究"; } if ($article_id < 2980 && $jabbr == "Integr Med Discov") { return "TMR Integr Med"; } if ($article_id < 3051 && $jabbr == "Pharmacol Discov") { return "TMR Pharmacol Res"; } if ($article_id < 3200 && $jabbr == "Nat Ther Adv") { return "TMR Modern Herb Med"; } return $jabbr; } function getArticleMains($article_id) { $article_main_obj = Db::name("article_main"); $list = $article_main_obj->where('article_id', $article_id)->where('state', 0)->where('is_add', 0)->select(); $frag = []; foreach ($list as $v) { $frag[] = $v; $pre = $v['article_main_id']; while ($pre != 0) { $ca = $article_main_obj->where("pre_id", $pre)->where('state', 0)->find(); if ($ca) { $frag[] = $ca; $pre = $ca['article_main_id']; } else { $pre = 0; } } } return $frag; } function hasHtml($article_id){ $article_main_obj = Db::name("article_main"); $list = $article_main_obj->where('article_id', $article_id)->where('state', 0)->where('is_add', 0)->find(); return $list?1:0; } function getArticleRefers($article_id) { $article_obj = Db::name("article"); $article_info = $article_obj->where('article_id', $article_id)->find(); $url = "http://api.tmrjournals.com/public/index.php/api/Web/getRefers"; $program['w_article_id'] = $article_info['article_id']; $dois = explode("/", $article_info['doi']); $program['doi'] = $dois[1]; $res = object_to_array(json_decode(myPost($url, $program))); $refers = isset($res['data']['refers']) ? $res['data']['refers'] : []; return $refers; } function getArticleTracks($doi) { $url = "http://api.tmrjournals.com/public/index.php/api/Web/getStackByDoi"; $program["doi"] = $doi; $res = object_to_array(json_decode(myPost($url, $program))); if ($res['code'] == 1) { return []; } else { return $res['data']['msgs']; } } function choiseJtitle($list) { foreach ($list as $k => $v) { $list[$k]['journal_title'] = choiseti($v); } return $list; } function choiseti($v) { if ($v['article_id'] < 1799 && $v['journal_title'] == "Cancer Advances") { return "TMR Cancer"; } if ($v['article_id'] < 910 && $v['journal_title'] == "Microenvironment & Microecology Research") { return "Tumor Microenvironment Research"; } if ($v['article_id'] < 1799 && $v['journal_title'] == "Medical Theory and Hypothesis") { return "TMR Theory and Hypothesis"; } if ($v['article_id'] < 1821 && $v['journal_title'] == "Clinical Research Communications") { return "TMR Clinical Research"; } if ($v['article_id'] < 1665 && $v['journal_title'] == "Aging Communications" && $v['article_id'] != 1612) { return "TMR Aging"; } if ($v['article_id'] < 1869 && $v['journal_title'] == "Nursing Communications") { return "TMR Integrative Nursing"; } if ($v['article_id'] < 1981 && $v['journal_title'] == "Toxicology Advances") { return "Asian Toxicology Research"; } if ($v['article_id'] >= 1981 && $v['article_id'] < 2358 && $v['journal_title'] == "Toxicology Advances") { return "Toxicology Communications"; } if ($v['article_id'] < 2190 && $v['journal_title'] == "Food and Health") { return "Food Therapy and Health Care"; } if ($v['article_id'] < 2520 && $v['journal_title'] == "Chin Quintessence Res") { return "经典中医研究"; } if ($v['article_id'] < 2980 && $v['journal_title'] == "Integrative Medicine Discovery") { return "TMR Integrative Medicine"; } if ($v["article_id"] < 3051 && $v['journal_title'] == "Pharmacology Discovery") { return "TMR Pharmacology Research"; } if ($v["article_id"] < 3200 && $v['journal_title'] == "Natural Therapy Advances") { return "TMR Modern Herbal Medicine"; } return $v['journal_title']; } function choiseti1($article_id, $journal_title) { if ($article_id < 1799 && $journal_title == "Cancer Advances") { return "TMR Cancer"; } if ($article_id < 910 && $journal_title == "Microenvironment & Microecology Research") { return "Tumor Microenvironment Research"; } if ($article_id < 1799 && $journal_title == "Medical Theory and Hypothesis") { return "TMR Theory and Hypothesis"; } if ($article_id < 1821 && $journal_title == "Clinical Research Communications") { return "TMR Clinical Research"; } if ($article_id < 1665 && $journal_title == "Aging Communications" && $article_id != 1612) { return "TMR Aging"; } if ($article_id < 1869 && $journal_title == "Nursing Communications") { return "TMR Integrative Nursing"; } if ($article_id < 1981 && $journal_title == "Toxicology Advances") { return "Asian Toxicology Research"; } if ($article_id >= 1981 && $article_id < 2358 && $journal_title == "Toxicology Advances") { return "Toxicology Communications"; } if ($article_id < 2190 && $journal_title == "Food and Health") { return "Food Therapy and Health Care"; } if ($article_id < 2520 && $journal_title == "Chinese Quintessence Research") { return "Classical Chinese Medicine Research"; } if ($article_id < 2980 && $journal_title == "Integrative Medicine Discovery") { return "TMR Integrative Medicine"; } if ($article_id < 3051 && $journal_title == "Pharmacology Discovery") { return "TMR Pharmacology Research"; } if ($article_id < 3200 && $journal_title == "Natural Therapy Advances") { return "TMR Modern Herbal Medicine"; } return $journal_title; } /** * @function sendEmail * @intro 发送邮件(带附件) * @param $email 接收邮箱 * @param $title 邮件标题 * @param $from_name 发件人 * @param $content 邮件内容 * @param $memail 邮件内容 * @param $mpassword 邮件内容 * @param $attachmentFile 附件 (string | array) * @return array */ function sendEmail($email = '', $title = '', $from_name = '', $content = '', $memail = '', $mpassword = '', $attachmentFile = '') { date_default_timezone_set('PRC'); //Create a new PHPMailer instance $mail = new PHPMailer; //Tell PHPMailer to use SMTP $mail->isSMTP(); //Enable SMTP debugging // 0 = off (for production use) // 1 = client messages // 2 = client and server messages $mail->SMTPDebug = 0; //Ask for HTML-friendly debug output $mail->Debugoutput = 'html'; //charset $mail->CharSet = 'UTF-8'; //Set the hostname of the mail server $mail->Host = "smtp.qiye.aliyun.com"; //请填写你的邮箱服务器 //Set the SMTP port number - likely to be 25, 465 or 587 $mail->Port = 25; //端口号 //Whether to use SMTP authentication $mail->SMTPAuth = true; //Username to use for SMTP authentication $mail->Username = $memail == '' ? "tmrweb@tmrjournals.com" : $memail; //发件邮箱用户名 //Password to use for SMTP authentication $mail->Password = $mpassword == '' ? "Wu999999tmrwe" : $mpassword; //发件邮箱密码 //Set who the message is to be sent from $mail->setFrom($memail == '' ? "tmrweb@tmrjournals.com" : $memail, $from_name); //Set an alternative reply-to address(用户直接回复邮件的地址) $mail->addReplyTo($memail == '' ? "tmrweb@tmrjournals.com" : $memail, $from_name); //Set who the message is to be sent to $mail->addAddress($email); //Set the subject line $mail->Subject = $title; //Read an HTML message body from an external file, convert referenced images to embedded, //convert HTML into a basic plain-text alternative body $mail->msgHTML($content); //Replace the plain text body with one created manually $mail->AltBody = ''; if (is_array($attachmentFile)) { for ($i = 0; $i < count($attachmentFile); $i++) { $mail->addAttachment($attachmentFile[$i], 'thanks.pdf' . $i); //这里可以是多维数组,然后循环附件的文件和名称 } } else { if ($attachmentFile != '') { //Attach an image file $mail->addAttachment($attachmentFile, 'thanks.pdf'); } } //send the message, check for errors if (!$mail->send()) { $status = 0; $data = "邮件发送失败" . $mail->ErrorInfo;; } else { $status = 1; $data = "邮件发送成功"; } return ['status' => $status, 'data' => $data]; //返回值(可选) } function sendEmail_data($email = '', $title = '', $from_name = '', $content = '', $memail = '', $mpassword = '', $attachmentFile = '') { ini_set('memory_limit', '3200M'); date_default_timezone_set('PRC'); //Create a new PHPMailer instance $mail = new PHPMailer; //Tell PHPMailer to use SMTP $mail->isSMTP(); //Enable SMTP debugging // 0 = off (for production use) // 1 = client messages // 2 = client and server messages $mail->SMTPDebug = 0; //Ask for HTML-friendly debug output $mail->Debugoutput = 'html'; //charset $mail->CharSet = 'UTF-8'; //Set the hostname of the mail server $mail->Host = "smtp.qiye.aliyun.com"; //请填写你的邮箱服务器 //Set the SMTP port number - likely to be 25, 465 or 587 $mail->Port = 25; //端口号 //Whether to use SMTP authentication $mail->SMTPAuth = true; //Username to use for SMTP authentication $mail->Username = $memail == '' ? "tmrweb@tmrjournals.com" : $memail; //发件邮箱用户名 //Password to use for SMTP authentication $mail->Password = $mpassword == '' ? "Wu999999tmrwe" : $mpassword; //发件邮箱密码 //Set who the message is to be sent from $mail->setFrom($memail == '' ? "tmrweb@tmrjournals.com" : $memail, $from_name); //Set an alternative reply-to address(用户直接回复邮件的地址) $mail->addReplyTo($memail == '' ? "tmrweb@tmrjournals.com" : $memail, $from_name); //Set who the message is to be sent to $mail->addAddress($email); //Set the subject line $mail->Subject = $title; //Read an HTML message body from an external file, convert referenced images to embedded, //convert HTML into a basic plain-text alternative body $mail->msgHTML($content); //Replace the plain text body with one created manually $mail->AltBody = ''; // if (is_array($attachmentFile)) { // for ($i = 0; $i < count($attachmentFile); $i++) { // $mail->addAttachment($attachmentFile[$i], 'thanks.pdf' . $i); //这里可以是多维数组,然后循环附件的文件和名称 // } // } else { if ($attachmentFile != '') { //Attach an image file $mail->addAttachment($attachmentFile, 'journal.zip'); } // } //send the message, check for errors if (!$mail->send()) { $status = 0; $data = "邮件发送失败" . $mail->ErrorInfo;; } else { $status = 1; $data = "邮件发送成功"; } return ['status' => $status, 'data' => $data]; //返回值(可选) } function sendEmail1($email = '', $title = '', $from_name = '', $content = '', $memail = '', $mpassword = '', $attachmentFile = '') { date_default_timezone_set('PRC'); //Create a new PHPMailer instance $mail = new PHPMailer; //Tell PHPMailer to use SMTP $mail->isSMTP(); //Enable SMTP debugging // 0 = off (for production use) // 1 = client messages // 2 = client and server messages $mail->SMTPDebug = 0; //Ask for HTML-friendly debug output $mail->Debugoutput = 'html'; //charset $mail->CharSet = 'UTF-8'; //Set the hostname of the mail server $mail->Host = "smtp.yeah.net"; //请填写你的邮箱服务器 // $mail->Host = "smtp.126.com"; //Set the SMTP port number - likely to be 25, 465 or 587 $mail->Port = 25; //端口号 //Whether to use SMTP authentication $mail->SMTPAuth = true; //Username to use for SMTP authentication $mail->Username = $memail == '' ? "tmrweb@tmrjournals.com" : $memail; //发件邮箱用户名 //Password to use for SMTP authentication $mail->Password = 'OBRTWMJCTWRKRMRP';//$mpassword == '' ? "Wu999999tmrwe" : $mpassword; //发件邮箱密码 //Set who the message is to be sent from $mail->setFrom($memail == '' ? "tmrweb@tmrjournals.com" : $memail, $from_name); //Set an alternative reply-to address(用户直接回复邮件的地址) $mail->addReplyTo($memail == '' ? "tmrweb@tmrjournals.com" : $memail, $from_name); //Set who the message is to be sent to $mail->addAddress($email); //Set the subject line $mail->Subject = $title; //Read an HTML message body from an external file, convert referenced images to embedded, //convert HTML into a basic plain-text alternative body $mail->msgHTML($content); //Replace the plain text body with one created manually $mail->AltBody = ''; if (is_array($attachmentFile)) { for ($i = 0; $i < count($attachmentFile); $i++) { $mail->addAttachment($attachmentFile[$i], 'thanks.pdf' . $i); //这里可以是多维数组,然后循环附件的文件和名称 } } else { if ($attachmentFile != '') { //Attach an image file $mail->addAttachment($attachmentFile, 'thanks.pdf'); } } //send the message, check for errors if (!$mail->send()) { $status = 0; $data = "邮件发送失败" . $mail->ErrorInfo; } else { $status = 1; $data = "邮件发送成功"; } return ['status' => $status, 'data' => $data]; //返回值(可选) } function aliemail($email, $title, $content) { // file_put_contents('/usr/a.txt', $email,FILE_APPEND); vendor('aliemail.email'); $mailto = $email; $mailsubject = $title; //组合邮件公共样式 $pre = Env::get('emailtemplete.pre'); $net = Env::get('emailtemplete.net'); $net1 = str_replace("{{email}}", $email, $net); $mailbody = $pre . $content . $net1; $smtpserver = "smtpdm-ap-southeast-1.aliyun.com"; $smtpserverport = 80; $smtpusermail = "propa@hellotmr.top"; // 发件人的账号,填写控制台配置的发信地址,比如xxx@xxx.com $smtpuser = "propa@hellotmr.top"; // 访问SMTP服务时需要提供的密码(在控制台选择发信地址进行设置) $smtppass = "Wu751019Pnx"; $mailsubject = "=?UTF-8?B?" . base64_encode($mailsubject) . "?="; $mailtype = "HTML"; //可选,设置回信地址 $smtpreplyto = "tmr@tmrjournals.com"; $smtp = new \smtp($smtpserver, $smtpserverport, true, $smtpuser, $smtppass); $smtp->debug = false; $cc = ""; $bcc = ""; $additional_headers = ""; //设置发件人名称,名称用户可以自定义填写。 $sender = $title; $res = $smtp->sendmail($mailto, $smtpusermail, $mailsubject, $mailbody, $mailtype, $cc, $bcc, $additional_headers, $sender, $smtpreplyto); return $res; } /** * 生成文章sn号 * @return type */ function getArticleSN($abbr, $type) { $str = $abbr; $str .= date('Y', time()) . $type . date('md', time()); $where['accept_sn'] = ['like', "$str%"]; $nowres = Db::name('article')->where($where)->select(); $last_num = 1; if ($nowres) { foreach ($nowres as $v) { $now_num = intval(substr($v['accept_sn'], -3)); $last_num = $now_num > $last_num ? $now_num : $last_num; } $last_num += 1; } $last_str = sprintf("%03d", $last_num); $str .= $last_str; return $str; } /** * 增加usermsg */ function add_usermsg($userid, $content, $url) { $msg_obj = Db::name('user_msg'); $msg_info = $msg_obj->where('user_id', $userid) ->where('url', $url) ->where('state', 0) ->find(); if ($msg_info) { return true; } $msgdata['user_id'] = $userid; $msgdata['content'] = $content; $msgdata['url'] = $url; $msgdata['ctime'] = time(); return $msg_obj->insert($msgdata); } function jsonSuccess($data) { return json(['code' => 0, 'msg' => 'success', 'data' => $data]); } function jsonError($msg) { return json(['code' => 1, 'msg' => $msg]); } function myPost($url, $param = array()) { if (!is_array($param)) { throw new Exception("参数必须为array"); } $httph = curl_init($url); // curl_setopt($httph, CURLOPT_SSL_VERIFYPEER, 0); // curl_setopt($httph, CURLOPT_SSL_VERIFYHOST, 1); curl_setopt($httph, CURLOPT_RETURNTRANSFER, 1); curl_setopt($httph, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)"); curl_setopt($httph, CURLOPT_POST, 1);//设置为POST方式 curl_setopt($httph, CURLOPT_POSTFIELDS, $param); // curl_setopt($httph, CURLOPT_RETURNTRANSFER,0); // curl_setopt($httph, CURLOPT_HEADER,1); $rst = curl_exec($httph); curl_close($httph); return $rst; } function myGet($url,$params) { $query_string = http_build_query($params); $full_url = $url . '?' . $query_string; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $full_url); // 设置请求URL curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // 设置返回数据而不是直接输出 curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); // 禁用SSL验证 $response = curl_exec($ch); if (curl_errno($ch)) { echo 'Error:' . curl_error($ch); } curl_close($ch); return $response; } function xml_to_array($xml) { $reg = "/<(\\w+)[^>]*?>([\\x00-\\xFF]*?)<\\/\\1>/"; if(preg_match_all($reg, $xml, $matches)) { $count = count($matches[0]); $arr = array(); for($i = 0; $i < $count; $i++) { $key = $matches[1][$i]; $val = xml_to_array( $matches[2][$i] ); // 递归 if(array_key_exists($key, $arr)) { if(is_array($arr[$key])) { if(!array_key_exists(0,$arr[$key])) { $arr[$key] = array($arr[$key]); } }else{ $arr[$key] = array($arr[$key]); } $arr[$key][] = $val; }else{ $arr[$key] = $val; } } return $arr; }else{ return $xml; } } function ORCIDPost($url, $param = array()) { if (!is_array($param)) { throw new Exception("参数必须为array"); } $headerArray = ['Content-Type: application/x-www-form-urlencoded']; $httph = curl_init($url); curl_setopt($httph, CURLOPT_SSL_VERIFYPEER, false); // curl_setopt($httph, CURLOPT_SSL_VERIFYHOST, 1); curl_setopt($httph, CURLOPT_RETURNTRANSFER, 1); curl_setopt($httph, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)"); curl_setopt($httph, CURLOPT_POST, 1);//设置为POST方式 curl_setopt($httph, CURLOPT_POSTFIELDS, $param); curl_setopt($httph, CURLOPT_HTTPHEADER, $headerArray); // curl_setopt($httph, CURLOPT_RETURNTRANSFER,0); // curl_setopt($httph, CURLOPT_HEADER,1); $rst = curl_exec($httph); curl_close($httph); return $rst; }