ホームページ  >  記事  >  バックエンド開発  >  PHP テンプレートの解析例_PHP チュートリアル

PHP テンプレートの解析例_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-14 10:07:06827ブラウズ


以下は 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'] = "

".$data['title']."

"."";

return $data['object'];

} else {

falseを返す;

}

}

/**

*

* @著者むらいん

* @param String $url

 */

関数 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);

$contents を返す;

}

www.bkjia.com本当http://www.bkjia.com/PHPjc/477897.html技術記事以下は PHP テンプレートの解析の例です。 正規表現を使用して、{youku id_XMTc5ODgwOTA4} を対応する再生コードに変換します。 ?php header(Content-type:text/html; charset=utf-8); $te...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。