<?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];
 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.   

    Nice!
    纪念乔帮主最给力的应该是华尔街闹的那帮美国人,他们都高举口号:"We need jobs!"
      

  2.   

    代码的目的是, 将 {youku id_XMTc5ODgwOTA4} 转换成 对应id 的视频。
    为了便于演示,直接抽取出了两个函数实现, 运行一下就好了。 
      

  3.   

    JOBS 的 stay hunger stay foolish