仅为怀念jobs
<!-- Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/ --> <?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="%5C%22%7B%24data%5B'swf'%5D%7D%5C%22" 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; }