知识屋:更实用的电脑技术知识网站
所在位置:首页 > 编程技术 > PHP编程

php 模版解析实例

发布时间:2014-09-05 10:44:13作者:知识屋


下面是一个php 模版解析的例子。

通过正则表达式将
{youku id_XMTc5ODgwOTA4} 转对对应的播放代码。

 


<?php

header('Content-type:text/html; charset=utf-8');

$template = '

{youku id_XMTc5ODgwOTA4}

{youku id_XMzA5NTUwOTky}

{youku id_XMzEwMTQyMjA4}

{youku id_XMjYzNTE0MTA4}

{youku id_XMzEwNDMwODk2}

{youku id_XMjk4NjA3Njk2}

{youku id_XMjQ3ODQwNDYw}

{youku id_XMjk4MjA2NDI0}

{youku id_XMzEwNDIyMTY4}

{youku id_XMzA5ODUzMjI4}

{youku id_XMzEwMzMxNjc2}

{youku id_XMzEwMTk4Njky}

{youku id_XMTA3OTA4MzQw}

{youku id_XMjQ1NzI1ODcy}

{youku id_XMjI4Mzc0OTY0}

';

 

$cfgYouku = array( array("rege"=>"//s*/{youku/s*id_(.*)}/s*/i","callback"=>"compile"));

 

 foreach ($cfgYouku as $val){

        if(isset($val["callback"])) 

        {

                $template = preg_replace_callback($val["rege"], $val["callback"], $template);

        }

 }

        

 

 

/**

 *

 * forjobs

 * @param unknown_type $matched

 */

function compile($matched)

{

         $url = $matched[0]; www.zhishiwu.com

         preg_match("/id/_(/w+)/", $url, $matches);

         

         if (empty($matches)){

            preg_match("#v_playlist//#", $url, $mat);

            if(!$mat) return false;

 

            $html = self::_fget($url);

            preg_match("#videoId2/s*=/s*/'(/w+)/'#", $html, $matches);

            if(!$matches) return false;

        }

         

        $link = "http://v.youku.com/player/getPlayList/VideoIDS/{$matches[1]}/timezone/+08/version/5/source/out?password=&ran=2513&n=3";

        $retval = fileGetContent( $link );

        if ($retval) {

            $json = json_decode($retval, true);

            $data['img'] = $json['data'][0]['logo'];

            $data['title'] = $json['data'][0]['title'];

            $data['url'] = $url;

            $data['swf'] = "http://player.youku.com/player.php/sid/{$matches[1]}/v.swf";

            

            if( $data ) $data['object'] = "<h2>".$data['title']."</h2>"."<embed src=/"{$data['swf']}/" quality=/"high/" width=/"480/" height=/"400/" align=/"middle/" allowNetworking=/"all/" allowScriptAccess=/"always/" type=/"application/x-shockwave-flash/"></embed>";

            return $data['object'];

        } else {

            return false;

        }

}

 

/**

 *

 * @author murain

 * @param String $url

 */

function fileGetContent($url)

{

       $ch = curl_init();

       $timeout = 10;

       curl_setopt($ch, CURLOPT_URL, $url);

       curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

       curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);

       curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);

       $contents = trim(curl_exec($ch));

       curl_close($ch);

       return $contents;

}

(免责声明:文章内容如涉及作品内容、版权和其它问题,请及时与我们联系,我们将在第一时间删除内容,文章内容仅供参考)
收藏
  • 人气文章
  • 最新文章
  • 下载排行榜
  • 热门排行榜