/** * check if the given URL matches some of the approved DirectLink URLs. * If yes, return userID to whom this URL belongs */ public function checkDirectLinkMatch($url) { $realFileName = $this->settingsDirectory . self::FILE_NAME; if(!file_exists($realFileName)) { throw new Gpf_Exception("DirectLink config file '$realFileName' does not exist!"); } $url = str_replace('https://', '', $url); $url = str_replace('http://', '', $url); $file = new Gpf_Io_File($realFileName); $file->open(); while (!$file->isEof()) { $buffer = $file->readLine(4065); if($buffer[0] == '<' || $buffer[0] == '?') { continue; } $buffer = trim($buffer); $arr = explode('|', $buffer, 7); if(!is_array($arr) || count($arr) != 7) { continue; } $userid = $arr[0]; $substring = $arr[1]; $clearUrl = $arr[2]; $preg = $arr[3]; $channelid = $arr[4]; $campaignid = $arr[5]; $bannerid = $arr[6]; if($this->isMatch($url, $substring, $preg)) { $file->close(); return array('userid' => $userid, 'url' => $clearUrl, 'channelid' => $channelid, 'campaignid' => $campaignid, 'bannerid' => $bannerid, ); } } $file->close(); return false; }