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('/