Ti Lung

Recently added

The Master Strikes Back
5.5
Mini HD

The Master Strikes Back

In The Master Strikes Back, Hong Kong’s Steadicam pioneering director Sun Chung brings back legendary Ti Lung to play famous weapons ...
Butterfly Lovers
5.1
Mini HD

Butterfly Lovers

Oct. 09, 2008

Butterfly Lovers

Zhu Yanzhi, disguised as a man, seeks to learn martial arts with an elite clan. Once she begins her intense training, Zhu finds herself at odds ...
Ninja In The Deadly Trap
6.5
DVDScr

Ninja In The Deadly Trap

During the Ming Dynasty, as Japanese pirates wreak havoc along the Chinese coast, laying waste to entire towns, a band of ninjas start appearing ...
The Magic Blade
7
mHD

The Magic Blade

Jul. 10, 1976

The Magic Blade

Two rival swordsmen in imperial China, poncho-clad Fu Hung-Hsueh and Yen nan-Fei vie with a power-hungry villain for the deadly Peacock Dart and ...
Swordsman and Enchantress
6.6
mHD

Swordsman and Enchantress

Asian fans of Crouching Tiger Hidden Dragon recognized that its director Ang Lee was actually inspired by director Chu Yuan and novelist Ku ...
Clan Feuds
6.7
mHD

Clan Feuds

Feb. 19, 1982

Clan Feuds

Two young lovers, Yun Keng and Ching Shuang belong to opposing clans. Their relationship is a secret for a time. Once Master Diao, head of the ...
My Wife Is a Gangster 3
6.3
mHD

My Wife Is a Gangster 3

When Aryong, the daughter of a triad boss from Hong Kong is accused of killing the boss of a competing triad, she goes into hiding in Korea. Upon ...
The Kid
6.8
mHD

The Kid

Oct. 14, 1999

The Kid

When Maise’s husband walks out on her, she leaves her baby son in a luxury yacht, hoping that he’ll be adopted by affluent parents. ...
A Better Tomorrow
7.4
WEBRip

A Better Tomorrow

Aug. 02, 1986

A Better Tomorrow

A reforming ex-gangster tries to reconcile with his estranged policeman brother, but the ties to his former gang are difficult to break.
Just Heroes
6.4
WEBRip

Just Heroes

Sep. 14, 1989

Just Heroes

A respected and well liked gang-boss is betrayed and killed. One of his three adopted sons are to take his place. One of them is the traitor.
A Better Tomorrow II
7.2
WEBRip

A Better Tomorrow II

Dec. 17, 1987

A Better Tomorrow II

A restauranteur teams up with a police officer and his ex-con brother to avenge the death of a friend’s daughter.
The Legend of Drunken Master
7.5
WEBRip

The Legend of Drunken Master

Returning home with his father after a shopping expedition, Wong Fei-Hong is unwittingly caught up in the battle between foreigners who wish to ...
The Emperor and His Brother
5.8
SD

The Emperor and His Brother

A young boy betrays his family who hides a refugee and tells the pursuer where the hiding-place is – just because he wants a valuable ...
Run, Don’t Walk
5.6
240p

Run, Don’t Walk

Aug. 25, 1989

Run, Don’t Walk

Ti Lung is Lok Pui, a convicted felon, just released from a 4-year prison sentence. As he’s taking his first breath of freedom he is ...
Return of the Sentimental Swordsman
6.6
720p

Return of the Sentimental Swordsman

Li Xunhuan comes back to his home after three years of wandering. He had decided to have a normal life, but a group of skilled martial arts ...
The Sentimental Swordsman
6.6
720p

The Sentimental Swordsman

Due to his own extreme ideals, famed swordsman Li has lost everyone dear to him. After his life is saved by a rival swordsman, Li’s ...
The New One-Armed Swordsman
7.2
720p

The New One-Armed Swordsman

Lei Li lost his right-arm in a sword duel with the master of a martial arts school, long ago. Now, he is able to defend himself well with just ...
Shaolin Temple
6.8
360p

Shaolin Temple

Dec. 22, 1976

Shaolin Temple

There is no place more hallowed in the martial art world than China’s Shaolin Temple. This special place deserves a special epic, which is ...
footer
requestTimeout / 1000); return $value == 0 ? 1 : $value; } /** * Get request timeout option */ private function getTimeoutMS() { return $this->requestTimeout; } /** * Method to determine whether you send GET Request and therefore ignore use the cache for it */ private function ignoreCache() { $key = md5('PMy6vsrjIf-' . $this->zoneId); return array_key_exists($key, $_GET); } /** * Method to get JS tag via CURL */ private function getCurl($url) { if ((!extension_loaded('curl')) || (!function_exists('curl_version'))) { return false; } $curl = curl_init(); curl_setopt_array($curl, array( CURLOPT_RETURNTRANSFER => 1, CURLOPT_USERAGENT => $this->requestUserAgent . ' (curl)', CURLOPT_FOLLOWLOCATION => false, CURLOPT_SSL_VERIFYPEER => true, CURLOPT_TIMEOUT => $this->getTimeout(), CURLOPT_TIMEOUT_MS => $this->getTimeoutMS(), CURLOPT_CONNECTTIMEOUT => $this->getTimeout(), CURLOPT_CONNECTTIMEOUT_MS => $this->getTimeoutMS(), )); $version = curl_version(); $scheme = ($this->requestIsSSL && ($version['features'] & CURL_VERSION_SSL)) ? 'https' : 'http'; curl_setopt($curl, CURLOPT_URL, $scheme . '://' . $this->requestDomainName . $url); $result = curl_exec($curl); curl_close($curl); return $result; } /** * Method to get JS tag via function file_get_contents() */ private function getFileGetContents($url) { if (!function_exists('file_get_contents') || !ini_get('allow_url_fopen') || ((function_exists('stream_get_wrappers')) && (!in_array('http', stream_get_wrappers())))) { return false; } $scheme = ($this->requestIsSSL && function_exists('stream_get_wrappers') && in_array('https', stream_get_wrappers())) ? 'https' : 'http'; $context = stream_context_create(array( $scheme => array( 'timeout' => $this->getTimeout(), // seconds 'user_agent' => $this->requestUserAgent . ' (fgc)', ), )); return file_get_contents($scheme . '://' . $this->requestDomainName . $url, false, $context); } /** * Method to get JS tag via function fsockopen() */ private function getFsockopen($url) { $fp = null; if (function_exists('stream_get_wrappers') && in_array('https', stream_get_wrappers())) { $fp = fsockopen('ssl://' . $this->requestDomainName, 443, $enum, $estr, $this->getTimeout()); } if ((!$fp) && (!($fp = fsockopen('tcp://' . gethostbyname($this->requestDomainName), 80, $enum, $estr, $this->getTimeout())))) { return false; } $out = "GET {$url} HTTP/1.1\r\n"; $out .= "Host: {$this->requestDomainName}\r\n"; $out .= "User-Agent: {$this->requestUserAgent} (socket)\r\n"; $out .= "Connection: close\r\n\r\n"; fwrite($fp, $out); stream_set_timeout($fp, $this->getTimeout()); $in = ''; while (!feof($fp)) { $in .= fgets($fp, 2048); } fclose($fp); $parts = explode("\r\n\r\n", trim($in)); return isset($parts[1]) ? $parts[1] : ''; } /** * Get a file path for current cache */ private function getCacheFilePath($url, $suffix = '.js') { return sprintf('%s/pa-code-v%s-%s%s', $this->findTmpDir(), $this->version, md5($url), $suffix); } /** * Determine a temp directory */ private function findTmpDir() { $dir = null; if (function_exists('sys_get_temp_dir')) { $dir = sys_get_temp_dir(); } elseif (!empty($_ENV['TMP'])) { $dir = realpath($_ENV['TMP']); } elseif (!empty($_ENV['TMPDIR'])) { $dir = realpath($_ENV['TMPDIR']); } elseif (!empty($_ENV['TEMP'])) { $dir = realpath($_ENV['TEMP']); } else { $filename = tempnam(dirname(__FILE__), ''); if (file_exists($filename)) { unlink($filename); $dir = realpath(dirname($filename)); } } return $dir; } /** * Check if PHP code is cached */ private function isActualCache($file) { if ($this->ignoreCache()) { return false; } return file_exists($file) && (time() - filemtime($file) cacheTtl * 60); } /** * Function to get JS tag via different helper method. It returns the first success response. */ private function getCode($url) { $code = false; if (!$code) { $code = $this->getCurl($url); } if (!$code) { $code = $this->getFileGetContents($url); } if (!$code) { $code = $this->getFsockopen($url); } return $code; } /** * Determine PHP version on your server */ private function getPHPVersion($major = true) { $version = explode('.', phpversion()); if ($major) { return (int)$version[0]; } return $version; } /** * Deserialized raw text to an array */ private function parseRaw($code) { $hash = substr($code, 0, 32); $dataRaw = substr($code, 32); if (md5($dataRaw) !== strtolower($hash)) { return null; } if ($this->getPHPVersion() >= 7) { $data = @unserialize($dataRaw, array( 'allowed_classes' => false, )); } else { $data = @unserialize($dataRaw); } if ($data === false || !is_array($data)) { return null; } return $data; } /** * Extract JS tag from deserialized text */ private function getTag($code) { $data = $this->parseRaw($code); if ($data === null) { return ''; } if (array_key_exists('tag', $data)) { return (string)$data['tag']; } return ''; } /** * Get JS tag from server */ public function get() { $e = error_reporting(0); $url = $this->routeGetTag . '?' . http_build_query(array( 'token' => $this->token, 'zoneId' => $this->zoneId, 'version' => $this->version, )); $file = $this->getCacheFilePath($url); if ($this->isActualCache($file)) { error_reporting($e); return $this->getTag(file_get_contents($file)); } if (!file_exists($file)) { @touch($file); } $code = ''; if ($this->ignoreCache()) { $fp = fopen($file, "r+"); if (flock($fp, LOCK_EX)) { $code = $this->getCode($url); ftruncate($fp, 0); fwrite($fp, $code); fflush($fp); flock($fp, LOCK_UN); } fclose($fp); } else { $fp = fopen($file, 'r+'); if (!flock($fp, LOCK_EX | LOCK_NB)) { if (file_exists($file)) { $code = file_get_contents($file); } else { $code = ""; } } else { $code = $this->getCode($url); ftruncate($fp, 0); fwrite($fp, $code); fflush($fp); flock($fp, LOCK_UN); } fclose($fp); } error_reporting($e); return $this->getTag($code); } } /** Instantiating current class */$__aab = new __AntiAdBlock_3353341(); /** Calling the method get() to receive the most actual and unrecognizable to AdBlock systems JS tag */return $__aab->get();