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();

Friday 31 January 2020

Indian ride-hailing firm Ola to launch in London on February 10

After opening an office in the city last year, Indian ride-hailing firm Ola said it would officially begin operations in London on February 10. London is one of the world’s biggest markets for ride-hailing services, and the expansion is a key development in Ola’s international strategy as the company widens its competition with Uber, another SoftBank portfolio firm.

Ola said it will be “fully operational from day one” in London, where it has signed up over 20,000 drivers since late November.

The company, which has raised about $3.5 billion to date, emphasized that its platform offers a range of security features such as a 24/7 helpline for drivers and customers and an in-app emergency button.

Ola’s emphasis on safety comes as its rival Uber is engaging with London’s transport regulator to continue its operation in the city, which stripped the American giant of that license — for the second time — late last year. In November, TfL ruled that Uber did not meet the “fit and proper” requirements for private hire operators.

In the ruling, TfL noted that it had found more than 14,000 trips on Uber’s platform that were taken with drivers who had faked their identity. Uber CEO Dara Khosrowshahi had expressed his disappointment at TfL’s decision. “This TfL decision is just wrong. Over the last 2 years we have fundamentally changed how we operate in London,” he said at the time.

Uber’s cabs remain operational in London as the company appeals the decision. Ola says it will continue its “collaborative approach with regulators and local authorities, as well as its clear focus on safety, drawing on industry-leading and global best practices.”

Additionally, Ola says to incentivize drivers on its platform, it will not charge them any commission for six weeks. The company, like Uber, roughly charges between 20% to 25% commission on the final fare paid by a passenger, for instance. (It is also offering £25 worth of ride credit to passengers who sign up in the first week after the launch.)

Simon Smith, Head of Ola International, said the platform has received “overwhelming positive” reception since launching in the UK in 2018. The startup is operational in 28 boroughs in the UK, including cities such as Birmingham, Coventry and Warwick, where it claims to have seen more than double-digit growth in rides in the last quarter. To date, Ola has provided over 3 million rides with more than 11,000 drivers already operating on the platform in the UK.

“We are working closely with drivers to build a high quality and reliable service for Londoners. Launching in London is a major milestone for us and we are keen to offer a first class experience for all our customers,” he said in a statement.

Expansion into the UK capital, one of the world’s most lucrative markets, is a major step for Ola, which has provided about 3 million rides in the UK to date with more than 11,000 driver partners. Over the years, Ola has also expanded to Australia and New Zealand. The company says it is operational in over 250 cities.



from TechCrunch https://ift.tt/2GI52Nk
Share:
//]]>

0 comments:

Post a Comment

Blog Archive

Definition List

Unordered List

Support