public function content_material_list($url, $dir, &$content, $need_pages, $need_process) { $content_material_list = array(); preg_match_all('/<img[^>]class=[\'|\\"]image-refer[\'|\\"][^>]src=[\'|\\"](.*?)[\'|\\"].*?[\\/]?>/is', $content, $mat_r1); preg_match_all('/<img[^>]src=[\'|\\"](.*?)[\'|\\"].*?class=[\'|\\"]image-refer[\'|\\"].*?[\\/]?>/is', $content, $mat_r2); $mat_r = arrpreg($mat_r1, $mat_r2); if (!$mat_r[0] || !is_array($mat_r[0])) { return array(); } foreach ($mat_r[0] as $k => $v) { if ($mat_r[1][$k]) { $ex_arr = explode('/', $mat_r[1][$k]); $re_ex_arr = array_reverse($ex_arr); $filename = $re_ex_arr[0]; $module = $re_ex_arr[1]; $app = $re_ex_arr[2]; $filename_arr = explode('_', $filename); $re_filename_arr = array_reverse($filename_arr); $fileid = intval($re_filename_arr[0]); unset($re_filename_arr[0]); if (empty($this->settings['App_' . $app]) || !$re_filename_arr) { continue; } $curl = new curl($this->settings['App_' . $app]['host'], $this->settings['App_' . $app]['dir']); $curl->setSubmitType('post'); $curl->setReturnFormat('json'); $curl->initPostData(); $curl->addRequestData('id', $fileid); $curl->addRequestData('a', 'detail'); $result = $curl->request(implode('_', array_reverse($re_filename_arr)) . '.php'); if (is_array($result) && $result) { $ret = $this->select_child($app, $result); } $content_material_list[$app . '_' . $fileid] = $ret; $find_arr[] = $v; $replace_arr[] = '<m2o_mark style="display:none">' . $app . '_' . $fileid . '</m2o_mark>'; } } if ($find_arr && $replace_arr && $content) { $content = str_replace($find_arr, $replace_arr, $content); } return $content_material_list; }
public function content_material_list($url, $dir, &$content, $need_pages, $need_process) { $content_material_list = array(); preg_match_all('/<img[^>]class=[\'|\\"]image-refer[\'|\\"][^>]src=[\'|\\"](.*?)[\'|\\"].*?[\\/]?>/is', $content, $mat_r1); preg_match_all('/<img[^>]src=[\'|\\"](.*?)[\'|\\"].*?class=[\'|\\"]image-refer[\'|\\"].*?[\\/]?>/is', $content, $mat_r2); /* * **匹配外部视频开始*** */ preg_match_all('/<img[^>]class=[\'|\\"]extranet-prev-pic[\'|\\"].*?imageid=[\'|\\"](.*?)[\'|\\"].*?src=[\'|\\"](.*?)[\'|\\"].*?title=[\'|\\"](.*?)[\'|\\"].*?_m3u8=[\'|\\"](.*?)[\'|\\"].*?_swf=[\'|\\"](.*?)[\'|\\"].*?_videourl=[\'|\\"](.*?)[\'|\\"].*?[\\/]?>/is', $content, $mat_r3); $mat_r3 = array_filter($mat_r3); if (!empty($mat_r3)) { $infor = array(); foreach ($mat_r3 as $key => $val) { foreach ($val as $k => $v) { $infor[$k][$key] = $v; } } foreach ($infor as $key => $val) { $videoInfor = array(); $ismatch = preg_match('/^(.*?)(material\\/.*?img\\/)([0-9]*[x|-][0-9]*)\\/(\\d{0,4}\\/\\d{0,2}\\/)(.*?)$/is', $val[2], $match); if ($ismatch) { $videoInfor['indexpic']['host'] = $match[1]; $videoInfor['indexpic']['dir'] = $match[2]; $videoInfor['indexpic']['filepath'] = $match[4]; $videoInfor['indexpic']['filename'] = $match[5]; } $videoInfor['title'] = $val[3]; $videoInfor['video_url'] = $val[4]; $videoInfor['swf'] = $val[5]; $videoInfor['videourl'] = $val[6]; //模拟规则$fileid由imageid代替 $content_material_list['videolink_' . $val[1]] = $videoInfor; $find_arr[] = $val[0]; $replace_arr[] = '<m2o_mark style="display:none">videolink_' . $val[1] . '</m2o_mark>'; } } /* * **匹配外部视频结束*** */ $mat_r = arrpreg($mat_r1, $mat_r2); if ((!$mat_r[0] || !is_array($mat_r[0])) && empty($mat_r3)) { return array(); } if ($mat_r[0] && is_array($mat_r[0])) { foreach ($mat_r[0] as $k => $v) { if ($mat_r[1][$k]) { $ex_arr = explode('/', $mat_r[1][$k]); $re_ex_arr = array_reverse($ex_arr); $filename = $re_ex_arr[0]; $module = $re_ex_arr[1]; $app = $re_ex_arr[2]; $filename_arr = explode('_', $filename); $re_filename_arr = array_reverse($filename_arr); $fileid = intval($re_filename_arr[0]); unset($re_filename_arr[0]); if (empty($this->settings['App_' . $app]) || !$re_filename_arr) { continue; } $curl = new curl($this->settings['App_' . $app]['host'], $this->settings['App_' . $app]['dir']); $curl->setSubmitType('post'); $curl->setReturnFormat('json'); $curl->initPostData(); $curl->addRequestData('id', $fileid); $curl->addRequestData('a', 'detail'); $result = $curl->request(implode('_', array_reverse($re_filename_arr)) . '.php'); if (is_array($result) && $result) { $ret = $this->select_child($app, $result); } $content_material_list[$app . '_' . $fileid] = $ret; $find_arr[] = $v; $replace_arr[] = '<m2o_mark style="display:none">' . $app . '_' . $fileid . '</m2o_mark>'; } } } if ($find_arr && $replace_arr && $content) { $content = str_replace($find_arr, $replace_arr, $content); } return $content_material_list; }