Пример #1
0
 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;
 }
Пример #2
0
 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;
 }