ホームページ >バックエンド開発 >PHPチュートリアル >PHP テンプレートの解析例_PHP チュートリアル
以下は PHP テンプレートの解析の例です。
正規表現経由で
を変換する
{youku id_XMTc5ODgwOTA4} に対応する再生コードを転送します。
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*{youkus*id_(.*)}s*/i","callback"=>"compile"));
foreach ($cfgYouku as $val){
if(isset($val["callback"]))
{
$template = preg_replace_callback($val["rege"], $val["callback"], $template);
}
}
/**
*
*求人用
* @paramknown_type $matched
*/
関数コンパイル($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("#videoId2s*=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'] = "