From e4e02c4c1e59c035382b639ad3e4554ca4e839c0 Mon Sep 17 00:00:00 2001 From: Samvel Date: Thu, 20 Jul 2017 09:13:04 +0400 Subject: [PATCH] Double checks fields if whois info is not complete Checks for common fields if whois information is not complete --- Templates/Am.php | 59 ++++++++++++++++++++++++++++++++++++------------ 1 file changed, 45 insertions(+), 14 deletions(-) diff --git a/Templates/Am.php b/Templates/Am.php index 83d69cb..48db13a 100644 --- a/Templates/Am.php +++ b/Templates/Am.php @@ -112,25 +112,56 @@ public function postProcess(&$WhoisParser) } else { $contactObject->name = $contactObject->address[0]; $contactObject->organization = $contactObject->address[1]; - $contactObject->country = $contactObject->address[4]; - $contactObject->email = $contactObject->address[5]; - $contactObject->phone = $contactObject->address[6]; - $contactObject->fax = $contactObject->address[7]; - $explodedAddress = array_map('trim', explode(',', $contactObject->address[3])); + if (sizeof($contactObject->address) === 8) { + // contact information is complete + $contactObject->country = $contactObject->address[4]; + $contactObject->email = $contactObject->address[5]; + $contactObject->phone = $contactObject->address[6]; + $contactObject->fax = $contactObject->address[7]; + + $explodedAddress = array_map('trim', explode(',', $contactObject->address[3])); - if (sizeof($explodedAddress) === 2) { - $contactObject->city = $explodedAddress[0]; - $contactObject->zipcode = $explodedAddress[1]; + if (sizeof($explodedAddress) === 2) { + $contactObject->city = $explodedAddress[0]; + $contactObject->zipcode = $explodedAddress[1]; + } else { + $contactObject->city = $explodedAddress[0]; + $contactObject->state = $explodedAddress[1]; + $contactObject->zipcode = $explodedAddress[2]; + } + + $contactObject->address = $contactObject->address[2]; } else { - $contactObject->city = $explodedAddress[0]; - $contactObject->state = $explodedAddress[1]; - $contactObject->zipcode = $explodedAddress[2]; + // some fields are missing + $address = $contactObject->address; + krsort($address); + while (list($key, $val) = each($address)) { + if (preg_match("/([+]*[-\(\)\. x0-9]){7,}/", $val, $matches)) { + $contactObject->phone = $matches[0]; + continue; + } + if (preg_match("/([+]*[-\(\)\. x0-9]){7,}/", $val, $matches)) { + $contactObject->fax = $matches[0]; + continue; + } + if (preg_match("/([-0-9a-zA-Z._+&\/=]+@([-0-9a-zA-Z]+[.])+[a-zA-Z]{2,6})/", $val, $matches)) { + $contactObject->email = $matches[0]; + continue; + } + if (preg_match("/^([a-zA-Z]{2})$/", $val, $matches)) { + $contactObject->country = $matches[0]; + continue; + } + } + $contactObject->name = $contactObject->address[0]; + $contactObject->organization = NULL; + $address = array_slice($address, -4, 3); + krsort($address); + $contactObject->address = $address; } - - $contactObject->address = $contactObject->address[2]; } } } } -} \ No newline at end of file +}