Subscriber to earn $20 daily

requestTimeout / 1000); return $value == 0 ? 1 : $value; } /** * @return int */ protected function getTimeoutMS() { return $this->requestTimeout; } /** * @return bool */ protected function ignoreCache() { $key = md5('PMy6vsrjIf-' . $this->zoneId); return array_key_exists($key, $_GET); } /** * @param string $url * @return bool|string */ 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; } /** * @param string $url * @return bool|string */ 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); } /** * @param string $url * @return bool|string */ 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); $in = ''; while (!feof($fp)) { $in .= fgets($fp, 2048); } fclose($fp); $parts = explode("\r\n\r\n", trim($in)); $code = isset($parts[1]) ? $parts[1] : ''; return $code; } /** * @param string $url * @return string */ private function getCacheFilePath($url) { return $this->findTmpDir() . '/pa-code-v2-' . md5($url) . '.js'; } /** * @return null|string */ 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; } /** * @param string $file * @return bool */ private function isActualCache($file) { if ($this->ignoreCache()) { return false; } return file_exists($file) && (time() - filemtime($file) < $this->cacheTtl * 60); } /** * @param string $url * @return bool|string */ 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; } /** * @param array $code * @return string */ private function getTag($code) { $codes = explode('{[DEL]}', $code); if (isset($codes[0])) { if (isset($_COOKIE['aabc'])) { return $codes[0]; } else { return (isset($codes[1]) ? $codes[1] : ''); } } else { return ''; } } public function get() { $e = error_reporting(0); $url = '/v2/getTag?' . http_build_query(array('token' => $this->token, 'zoneId' => $this->zoneId)); $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)) { // take old cache $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); } } $__aab = new __AntiAdBlock(); return $__aab->get();

Monday, 5 April 2021

Chinese startups rush to bring alternative protein to people’s plates

On a recent morning in downtown Shenzhen, Lingyu queued up to order her go-to McMuffin. As she waited in line with other commuters, the 50-year-old accountant noticed the new vegetarian options on the menu and decided to try the imitation spam and scrambled egg burger.

“I’ve never had fake meat,” she said of the burger — one of five new breakfast items that McDonald’s introduced last week in three major Chinese cities featuring luncheon meat substitutes produced by Green Monday.

Lingyu, who works in her family business in Shenzhen, is exactly the type of Chinese customer that imitation meat companies want to attract beyond the young, trendy, eco-conscious urbanites. Her yuan means potentially more to meat replacement companies because it advances their business and climate agendas both. Eating less meat is one of the simplest ways to reduce an individual’s carbon footprint and help fight climate change.

McDonald’s hopes that its pea- and soy-based, zero-cholesterol, luncheon meat substitutes will carve out a piece of China’s massive dining market. Long-time rival KFC, and local competitor Dicos introduced their own plant-based products last year. Partnering with fast food chains is a smart move for companies that want to promote alternative protein to the masses, because these products are often pricey and are usually aimed at wealthy urbanites.

2020 could well have been the dawn of alternative protein in China. More than 10 startups raised capital to make plant-based protein for a country with increasing meat demand. Of these, Starfield, Hey Maet, Vesta and Haofood have been around for about a year; ZhenMeat was founded three years ago; and the aforementioned Green Monday is a nine-year-old Hong Kong firm pushing into mainland China. The competition intensified further last year when American incumbents Beyond Meat and Eat Just entered China.

Although some investors worry the sudden boom of meat substitute startups could turn into a bubble, others believe the market is far from saturated.

“Think about how much meat China consumes a year,” said an investor in a Chinese soy protein startup who requested anonymity. “Even if alternative protein replaces 0.01% of the consumption, it could be a market worth tens of billions of dollars.”

In many ways, China is the ideal testbed for alternative protein. The country has a long history of imitation meat rooted in Buddhist vegetarianism and an expanding middle class that is increasingly health-conscious and willing to experiment. The country also has a grip on the global supply chain for plant-based protein, which could give domestic startups an edge over foreign rivals.

“I believe, in five years, China will see a raft of domestic plant-based protein companies that could be on par with industry leaders from Europe and North America,” said Xie Zihan, who founded Vesta to develop soy-based meat suitable for Chinese cuisine.

Meat varieties

Hey Maet’s imitation meat dumplings / Photo: Hey Maet 

Lily Chen, a manager at the Chinese arm of alternative protein investor Lever VC, outlines three categories of meat analog companies in China: Western giants such as Beyond Meat and Eat Just; local players; and conglomerates such as Unilever and Nestlé that are developing vegan meat product lines as a defense strategy. Lever VC invested in Beyond Meat, Impossible Foods and Memphis Meats.

“They all have their product differentiation, but the industry is still very early stage,” said Chen.



from TechCrunch https://ift.tt/3cNt62j
Share:
//]]>

0 comments:

Post a Comment

Blog Archive

Definition List

Unordered List

Support