Kim Su-an

Recently added

Sorry, Thanks
7.3
WEBRip

Sorry, Thanks

May. 26, 2011

Sorry, Thanks

An impossibly cute and thoroughly touching omnibus of 4 short fillms about how humans can elevate their own relationships through bonding with ...
The Wish
0
WEBRip

The Wish

Jul. 18, 2013

The Wish

When young, we might try witchcraft out of curiosity to make our wishes come true, even if it’s scary. For such curiosity, Joohee, who is unable ...
Hide and Seek
6.3
WEBRip

Hide and Seek

Aug. 14, 2013

Hide and Seek

Sung-soo has everything a man could want: a beautiful wife and children, a comfortable home and luxury car, and plenty of money in the bank. When ...
Sprout
7.9
WEBRip

Sprout

Oct. 04, 2013

Sprout

Little Bory’s family has come together – as they do every year – to commemorate her late grandfather. Bean sprouts are missing from their ...
Mad Sad Bad
5.8
WEBRip

Mad Sad Bad

May. 15, 2014

Mad Sad Bad

Ryoo Seungwan, Han Jiseung, Kim Taeyong got together to make a 3D omnibus film. It’s a 3D vision of terrible realities never far from ...
Gyeongju
6.8
WEBRip

Gyeongju

Jun. 12, 2014

Gyeongju

A Beijing professor returns to his stomping grounds for a friend’s funeral. Reflecting on the past, he meets a tea shop owner who sparks ...
The Whistleblower
6.8
WEBRip

The Whistleblower

Oct. 02, 2014

The Whistleblower

Lee Jang-hwan receives widespread acclaim and media attention after successfully cloning human embryo stem cells. A TV news program PD, Yoon ...
Twinkle-Twinkle Pitter-Patter
0
WEBRip

Twinkle-Twinkle Pitter-Patter

Onew, who is visually impaired, and Eun-soo, who is hearing impaired, both enjoy the pleasure of communicating with loved ones regardless of ...
Late Spring
6.9
WEBRip

Late Spring

Nov. 20, 2014

Late Spring

Set in the 1960’s. Joo-Goo is viewed as Korea’s best sculptor, but he suffers from a disease which will slowly paralyze his body. He ...
Memories of the Sword
6.3
WEBRip

Memories of the Sword

Aug. 13, 2015

Memories of the Sword

While in medieval Korea, a young girl sets out to revenge the betrayal and the death of her mother. But therefore she must face one of the most ...
The Exclusive: Beat the Devil’s Tattoo
6.4
WEBRip

The Exclusive: Beat the Devil’s Tattoo

An unsuccessful journalist becomes a star after he writes an article about the memo of an unknown serial killer. But when he learns that the memo ...
Love, Lies
6.9
WEBRip

Love, Lies

Apr. 13, 2016

Love, Lies

Two best friends, So-yool and Yeon-hee, dream of becoming the top artists in Seoul together. But their friendship doesn’t last long as ...
The Net
7.3
WEBRip

The Net

Oct. 06, 2016

The Net

A poor North Korean fisherman finds himself an accidental defector, and is groomed to be a spy by an ambitious South Korean military officer.
The Battleship Island
7.1
WEBRip

The Battleship Island

Jul. 26, 2017

The Battleship Island

During the Japanese colonial era, roughly 400 Korean people, who were forced onto Battleship Island ‘Hashima Island’ to mine for ...
A Field Day
0
WEBRip

A Field Day

Mar. 22, 2018

A Field Day

Middle-aged Cheolgu is laid off with no advance notice. Looking for a new job is not easy and neither is the situation that his family members ...
Kokdu: A Story of Guardian Angels
7.9
WEBRip

Kokdu: A Story of Guardian Angels

In this adaptation of theatrical drama Kkokdu by Kim and music director Bang Junseok, two children who sold their grandmother’s shoes to buy a ...
A Little Princess
6.9
WEBRip

A Little Princess

Dec. 04, 2019

A Little Princess

Mal-soon is a tough granny in a shanty town in Busan. In front of her, 12-year-old Gong-ju appears with her baby sister Jin-ju on her back. ...
Project Silence
6.2
WEBRip

Project Silence

May. 21, 2023

Project Silence

The film takes place when an accident occurs on a foggy bridge and, as a result, an unknown beast is unleashed.
Train to Busan
7.6
HD

Train to Busan

Jul. 20, 2016

Train to Busan

When a zombie virus pushes Korea into a state of emergency, those trapped on an express train to Busan must fight for their own survival.
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();