程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> php 模版解析實例

php 模版解析實例

編輯:關於PHP編程


下面是一個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.2cto.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;

}

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved