getOne($data); } if (!$data) { Dever::alert('错误的文章信息'); } $data = $this->getContent($data, $uid); return $data; } public function getContent($data, $uid = false) { //embed $data['content_array'] = array(); $data['content'] = Dever::filter($data['content']); $content = $data['content']; $replace = array(); # embed已废弃 if (strstr($data['content'], 'embed')) { # 音频 preg_match_all('//i', $content, $matches); if (isset($matches[1])) { foreach ($matches[1] as $k => $v) { $content = str_replace($matches[0][$k], '{replace}'.count($replace).'{replace}', $content); if (strstr($v, '.mp4') || strstr($v, '.mov') || strstr($v, '.m3u8')) { $replace[] = array('type' => 6, 'content' => $v); } else { $replace[] = array('type' => 5, 'content' => $v); } } } } if (strstr($data['content'], 'data-applet')) { # 小程序 preg_match_all('//', $content, $matches); if (isset($matches[2])) { foreach ($matches[2] as $k => $v) { $content = str_replace($matches[0][$k], '{replace}'.count($replace).'{replace}', $content); $temp = explode('||', $v); $pic = $temp[0]; $appid = $temp[1]; $path = $temp[2]; if ($appid) { $appinfo = Dever::db('content/applet')->one(array('appid' => $appid)); } else { $appinfo['name'] = ''; $appinfo['link'] = ''; } if (isset($temp[3]) && $temp[3]) { $appinfo['link'] = $temp[3]; } $replace[] = array('type' => 7, 'pic_cover' => $pic, 'appid' => $appid, 'path' => $path, 'name' => $appinfo['name'], 'link' => $appinfo['link']); } } } if (strstr($data['content'], 'gif')) { # gif preg_match_all('//', $content, $matches); if (isset($matches[2])) { foreach ($matches[2] as $k => $v) { $content = str_replace($matches[0][$k], '{replace}'.count($replace).'{replace}', $content); $pic = $v; $replace[] = array('type' => 8, 'pic' => $pic . '.gif'); } } } if (strstr($data['content'], 'data-file')) { # 音频 preg_match_all('//', $content, $matches); if (!isset($matches[1][0])) { preg_match_all('//', $content, $matches); $temp = array(); if (isset($matches[2][0])) { $temp = $matches; $matches[1] = $temp[2]; unset($temp); } } if (isset($matches[1])) { foreach ($matches[1] as $k => $v) { if (isset($matches[3][$k])) { $content = str_replace($matches[0][$k], '{replace}'.count($replace).'{replace}', $content); $file = $matches[3][$k]; $temp = explode('||', $file); $file = $temp[0]; if (isset($temp[1])) { $name = $temp[1]; } else { $name = ''; } $cover = $v; if (strstr($v, '.mp4') || strstr($v, '.mov') || strstr($v, '.m3u8')) { $replace[] = array('type' => 6, 'content' => $file, 'cover' => $cover, 'name' => $name); } else { $replace[] = array('type' => 5, 'content' => $file, 'cover' => $cover, 'name' => $name); } } } } } if (strstr($data['content'], 'data-id')) { # 视频+直播 preg_match_all('//', $content, $matches); if (!isset($matches[2][0])) { preg_match_all('//', $content, $matches); $temp = array(); if (isset($matches[2][0]) && isset($matches[3][0])) { $temp = $matches; $matches[2] = $temp[3]; $matches[3] = $temp[2]; unset($temp); } } if (isset($matches[2][0]) && isset($matches[3][0])) { foreach ($matches[2] as $k => $v) { $content = str_replace($matches[0][$k], '{replace}'.count($replace).'{replace}', $content); if ($matches[3][$k] == 'video/lib/core.vod') { $method = 'video/lib/vod'; $type = 2; } else { $type = 3; $method = 'video/lib/live'; } $info = Dever::load($method)->get($v); if (isset($info['content'])) { unset($info['content']); } if ($type == 3) { # 查看是否有预约 if ($uid > 0) { $info['user_act']['note'] = Dever::load('act/lib/note')->get($uid, $v, $type); } else { $info['user_act']['note'] = 2; } } $replace[] = array('id' => $v, 'type' => $type, 'content' => $info); } } } //$data['content'] = preg_replace('/
([\s\S]*?)<\/div>/i', '', $data['content']); $content = explode('{replace}', $content); $data['content_array'] = array(); //print_r($content);die; foreach ($content as $k => $v) { $v = trim($v); if (is_numeric($v) && $v >= 0 && isset($replace[$v])) { $data['content_array'][] = $replace[$v]; } elseif ($v) { $data['content_array'][] = array ( 'type' => 1, 'content' => $v, ); } } if (!$data['content_array']) { $data['content_array'][] = array ( 'type' => 1, 'content' => $data['content'], ); } unset($data['content']); return $data; } # 获取相关推荐 public function getRelation($info) { $where['noid'] = $info['id']; $where['cate_id'] = $info['cate_id']; return Dever::db('content/article')->getRelation($where); } # 增加浏览量 public function addView($id) { Dever::db('content/article')->addView($id); } }