<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="https://doc.openprovider.eu/skins/common/feed.css?207"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
	<channel>
		<title>Bulk transfer domains from TransIP - Revision history</title>
		<link>https://doc.openprovider.eu/index.php?title=Bulk_transfer_domains_from_TransIP&amp;action=history</link>
		<description>Revision history for this page on the wiki</description>
		<language>en</language>
		<generator>MediaWiki 1.15.2</generator>
		<lastBuildDate>Fri, 29 May 2026 20:06:14 GMT</lastBuildDate>
		<item>
			<title>WikiSysop:&amp;#32;Replaced content with 'The script and additional documentation have been moved to our [https://support.openprovider.eu/hc/en-us/articles/360019994414 Knowledge Base]'</title>
			<link>https://doc.openprovider.eu/index.php?title=Bulk_transfer_domains_from_TransIP&amp;diff=1766&amp;oldid=prev</link>
			<description>&lt;p&gt;Replaced content with &amp;#39;The script and additional documentation have been moved to our [https://support.openprovider.eu/hc/en-us/articles/360019994414 Knowledge Base]&amp;#39;&lt;/p&gt;
&lt;a href=&quot;https://doc.openprovider.eu/index.php?title=Bulk_transfer_domains_from_TransIP&amp;amp;diff=1766&amp;amp;oldid=1765&quot;&gt;Show changes&lt;/a&gt;</description>
			<pubDate>Mon, 13 May 2019 10:13:09 GMT</pubDate>			<dc:creator>WikiSysop</dc:creator>			<comments>https://doc.openprovider.eu/Talk:Bulk_transfer_domains_from_TransIP</comments>		</item>
		<item>
			<title>WikiSysop at 10:12, 13 May 2019</title>
			<link>https://doc.openprovider.eu/index.php?title=Bulk_transfer_domains_from_TransIP&amp;diff=1765&amp;oldid=prev</link>
			<description>&lt;p&gt;&lt;/p&gt;

		&lt;table style=&quot;background-color: white; color:black;&quot;&gt;
		&lt;col class='diff-marker' /&gt;
		&lt;col class='diff-content' /&gt;
		&lt;col class='diff-marker' /&gt;
		&lt;col class='diff-content' /&gt;
		&lt;tr valign='top'&gt;
		&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;← Older revision&lt;/td&gt;
		&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Revision as of 10:12, 13 May 2019&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;The script and additional documentation can be found in our [https://support.openprovider.eu/hc/en-us/articles/360019994414 Knowledge Base]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Before using this script, please make sure to read [[API General Examples|API General Examples]]&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Before using this script, please make sure to read [[API General Examples|API General Examples]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;!-- diff generator: internal 2026-05-29 20:06:14 --&gt;
&lt;/table&gt;</description>
			<pubDate>Mon, 13 May 2019 10:12:34 GMT</pubDate>			<dc:creator>WikiSysop</dc:creator>			<comments>https://doc.openprovider.eu/Talk:Bulk_transfer_domains_from_TransIP</comments>		</item>
		<item>
			<title>WikiSysop:&amp;#32;Created page with 'Before using this script, please make sure to read API General Examples  Using this script is at your own risk!   &lt;?php      $help = &quot;Available parameter…'</title>
			<link>https://doc.openprovider.eu/index.php?title=Bulk_transfer_domains_from_TransIP&amp;diff=1764&amp;oldid=prev</link>
			<description>&lt;p&gt;Created page with &amp;#39;Before using this script, please make sure to read &lt;a href=&quot;/API_General_Examples&quot; title=&quot;API General Examples&quot;&gt;API General Examples&lt;/a&gt;  Using this script is at your own risk!   &amp;lt;?php      $help = &amp;quot;Available parameter…&amp;#39;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Before using this script, please make sure to read [[API General Examples|API General Examples]]&lt;br /&gt;
&lt;br /&gt;
Using this script is at your own risk!&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;?php&lt;br /&gt;
 &lt;br /&gt;
   $help = &amp;quot;Available parameters:&lt;br /&gt;
 -f: (required) name of file containing domains to transfer&lt;br /&gt;
 -d: (optional) how to handle DNS zones; allowed values:&lt;br /&gt;
     0: (default) do not create DNS zones in Openprovider; use existing&lt;br /&gt;
        nameservers&lt;br /&gt;
     1: create DNS zones in Openprovider based on TransIP DNS records;&lt;br /&gt;
        put the domain on the Openprovider nameservers after transfer;&lt;br /&gt;
        existing zones will not be overwritten&lt;br /&gt;
     overwrite: create DNS zones, overwrite any existing zones&lt;br /&gt;
 -h: (optional) how to handle contacts; allowed values:&lt;br /&gt;
     0: (default) the script checks if another TransIP contact with the&lt;br /&gt;
        same data was processed before; if so, re-use that contact instead&lt;br /&gt;
        of creating a new one&lt;br /&gt;
     1: create a new Openprovider handle for every domain contact, even if&lt;br /&gt;
        the data is similar to a previously processed contact&lt;br /&gt;
 -v: (optional) whether or not to show extended information during runtime;&lt;br /&gt;
     allowed values:&lt;br /&gt;
     0: (default) don't show additional ouput&lt;br /&gt;
     1: show additional ouput&lt;br /&gt;
 -t: (optional) whether to run in test mode or not; allowed values:&lt;br /&gt;
     0: run live&lt;br /&gt;
     1: (default) run in test mode / read-only; no contacts or zones will&lt;br /&gt;
        be created, no domains will be transferred&lt;br /&gt;
 &lt;br /&gt;
 Examples:&lt;br /&gt;
   Run in test mode, full debugging output:&lt;br /&gt;
     php transfer-from-transip.php -f domains.txt -v1 -t1&lt;br /&gt;
 &lt;br /&gt;
   Run in live mode: transfer domains while create DNS zones (but do not&lt;br /&gt;
   overwrite existing ones), show limited output:&lt;br /&gt;
     php transfer-from-transip.php -f domains.txt -t0 -d1&lt;br /&gt;
 &lt;br /&gt;
 Full documentation is available at https://openprovider.zendesk.com/hc/en-us/articles/360019994414&lt;br /&gt;
 &amp;quot;;&lt;br /&gt;
 &lt;br /&gt;
   // Openprovider API credentials&lt;br /&gt;
   $auth = array('username' =&amp;gt; $op_user, 'hash' =&amp;gt; $op_hash);&lt;br /&gt;
 &lt;br /&gt;
   // TransIP and Openprovider API&lt;br /&gt;
   require_once('Transip/DomainService.php');&lt;br /&gt;
   require_once('API.php');&lt;br /&gt;
   $api = new OP_API ('https://api.openprovider.eu');&lt;br /&gt;
 &lt;br /&gt;
   // Read runtime parameters&lt;br /&gt;
   $opts = getopt('f:d:t:h:v:', array('help'));&lt;br /&gt;
   $domainFile      = $opts['f']; // filename (required)&lt;br /&gt;
   $withDns         = $opts['d']; // 0, 1 or overwrite (default = 0)&lt;br /&gt;
   $forceNewHandles = $opts['h']; // 0 or 1 (default = 0)&lt;br /&gt;
   $verbose         = $opts['v']; // 0 or 1 (default = 0)&lt;br /&gt;
   $testMode        = $opts['t']; // 0 or 1 (default = 1)&lt;br /&gt;
 &lt;br /&gt;
   if (isset($opts['help'])) {&lt;br /&gt;
     echo $help;&lt;br /&gt;
     exit;&lt;br /&gt;
   }&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
   // Get list with domains to transfer&lt;br /&gt;
   if (file_exists($domainFile)) {&lt;br /&gt;
     $domains = file($domainFile, FILE_IGNORE_NEW_LINES);&lt;br /&gt;
   }&lt;br /&gt;
   else {&lt;br /&gt;
     die(&amp;quot;Cannot find domain list; file [$f] does not exist\n&amp;quot;);&lt;br /&gt;
   }&lt;br /&gt;
 &lt;br /&gt;
   // Check other parameters&lt;br /&gt;
   if (!in_array($withDns, array(0, 1, 'overwrite'))) {&lt;br /&gt;
     $withDns = 0;&lt;br /&gt;
   }&lt;br /&gt;
   if (!in_array($testMode, array(0, 1))) {&lt;br /&gt;
     $testMode = 1;&lt;br /&gt;
   }&lt;br /&gt;
   if (!in_array($forceNewHandles, array(0, 1))) {&lt;br /&gt;
     $forceNewHandles = 0;&lt;br /&gt;
   }&lt;br /&gt;
   if (!in_array($verbose, array(0, 1))) {&lt;br /&gt;
     $verbose = 0;&lt;br /&gt;
   }&lt;br /&gt;
 &lt;br /&gt;
   // Keep track of handles that were already created&lt;br /&gt;
   $handleRelations = array();&lt;br /&gt;
   if (!$forceNewHandles) {&lt;br /&gt;
     if (file_exists('transip-handle-relations.dat')) {&lt;br /&gt;
       if ($f = fopen('transip-handle-relations.dat', 'r')) {&lt;br /&gt;
         while (!feof($f)) {&lt;br /&gt;
           list($md5, $opHandle) = fgetcsv($f);&lt;br /&gt;
           $handleRelations[$md5] = $opHandle;&lt;br /&gt;
         }&lt;br /&gt;
         fclose($f);&lt;br /&gt;
       }&lt;br /&gt;
       else {&lt;br /&gt;
         die(&amp;quot;Cannot open file transip-handle-relations.dat\n&amp;quot;);&lt;br /&gt;
       }&lt;br /&gt;
     }&lt;br /&gt;
     $fHandles = fopen('transip-handle-relations.dat', 'a');&lt;br /&gt;
   }&lt;br /&gt;
 &lt;br /&gt;
   foreach ($domains as $dom) {&lt;br /&gt;
     $continue = true;&lt;br /&gt;
 &lt;br /&gt;
     if ($verbose) {&lt;br /&gt;
       echo &amp;quot;Starting domain $dom\n&amp;quot;;&lt;br /&gt;
       echo &amp;quot;Retrieve data for domain $dom from TransIP API\n&amp;quot;;&lt;br /&gt;
     }&lt;br /&gt;
     try {&lt;br /&gt;
       $domain = Transip_DomainService::getInfo($dom);&lt;br /&gt;
       if ($verbose) {&lt;br /&gt;
         echo &amp;quot;TransIP returned the following data for domain $dom:\n&amp;quot;;&lt;br /&gt;
         print_r($domain);&lt;br /&gt;
       }&lt;br /&gt;
     }&lt;br /&gt;
     catch(SoapFault $e) {&lt;br /&gt;
       // It is possible that an error occurs when connecting to the TransIP Soap API,&lt;br /&gt;
       // those errors will be thrown as a SoapFault exception.&lt;br /&gt;
       echo &amp;quot;@@ERROR: An error occurred while querying the TransIP API for domain [$dom]: &amp;quot;.htmlspecialchars($e-&amp;gt;getMessage()).&amp;quot;\n&amp;quot;;&lt;br /&gt;
       continue;&lt;br /&gt;
     }&lt;br /&gt;
 &lt;br /&gt;
     $args = array();&lt;br /&gt;
     &lt;br /&gt;
     // Nameservers&lt;br /&gt;
     if ($verbose) {&lt;br /&gt;
       echo &amp;quot;Preparing nameservers for domain [$dom]\n&amp;quot;;&lt;br /&gt;
     }&lt;br /&gt;
     if ($withDns) {&lt;br /&gt;
       if (!$domain-&amp;gt;dnsEntries) {&lt;br /&gt;
         echo &amp;quot;@@ERROR: no DNS entries found for import in Openprovider for $dom; skipping this domain\n&amp;quot;;&lt;br /&gt;
         continue;&lt;br /&gt;
       }&lt;br /&gt;
       if (createOpenproviderZone($dom, $domain-&amp;gt;dnsEntries)) {&lt;br /&gt;
         $args['nsGroup'] = 'dns-openprovider';&lt;br /&gt;
       }&lt;br /&gt;
       else {&lt;br /&gt;
         echo &amp;quot;@@ERROR: while creating DNS zone for $dom; skipping this domain\n&amp;quot;;&lt;br /&gt;
         continue;&lt;br /&gt;
       }&lt;br /&gt;
     }&lt;br /&gt;
     else {&lt;br /&gt;
       if (isset($domain-&amp;gt;nameservers)) {&lt;br /&gt;
         foreach ($domain-&amp;gt;nameservers as $ns) {&lt;br /&gt;
           $args['nameServers'][] = array(&lt;br /&gt;
             'name' =&amp;gt; $ns-&amp;gt;hostname,&lt;br /&gt;
             'ip'   =&amp;gt; (isset($ns-&amp;gt;ipv4) ? $ns-&amp;gt;ipv4 : NULL),&lt;br /&gt;
             'ip6'  =&amp;gt; (isset($ns-&amp;gt;ipv6) ? $ns-&amp;gt;ipv6 : NULL),&lt;br /&gt;
           );&lt;br /&gt;
         }&lt;br /&gt;
       }&lt;br /&gt;
     }&lt;br /&gt;
 &lt;br /&gt;
     // Contacts (handles)&lt;br /&gt;
     if ($verbose) {&lt;br /&gt;
       echo &amp;quot;Preparing contact handles for domain [$dom]\n&amp;quot;;&lt;br /&gt;
     }&lt;br /&gt;
     foreach ($domain-&amp;gt;contacts as $contact) {&lt;br /&gt;
       $type = '';&lt;br /&gt;
       switch ($contact-&amp;gt;type) {&lt;br /&gt;
         case 'registrant'     : $type = 'owner'; break;&lt;br /&gt;
         case 'administrative' : $type = 'admin'; break;&lt;br /&gt;
         case 'technical'      : $type = 'tech'; break;&lt;br /&gt;
         default               : echo &amp;quot;@@WARNING: invalid contact type &amp;quot;.$contact-&amp;gt;type.&amp;quot; for domain [$dom]; skipping\n&amp;quot;; break;&lt;br /&gt;
       }&lt;br /&gt;
       unset($contact-&amp;gt;type);&lt;br /&gt;
 &lt;br /&gt;
       $hash = md5(implode('', get_object_vars($contact)));&lt;br /&gt;
       if (!$forceNewHandles &amp;amp;&amp;amp; isset($handleRelations[$hash])) {&lt;br /&gt;
         $opHandle = $handleRelations[$hash];&lt;br /&gt;
       }&lt;br /&gt;
       else {&lt;br /&gt;
         if ($opHandle = createOpenproviderContact($contact)) {&lt;br /&gt;
           if (!$testMode) {&lt;br /&gt;
             fwrite($fHandles, $hash.','.$opHandle.&amp;quot;\n&amp;quot;);&lt;br /&gt;
             $handleRelations[$hash] = $opHandle;&lt;br /&gt;
           }&lt;br /&gt;
         }&lt;br /&gt;
         else {&lt;br /&gt;
           echo &amp;quot;@@ERROR while creating Openprovider contact for $type of $dom\n&amp;quot;;&lt;br /&gt;
           $continue = false;&lt;br /&gt;
           continue 2;&lt;br /&gt;
         }&lt;br /&gt;
       }&lt;br /&gt;
       $args[$type.'Handle'] = $opHandle;&lt;br /&gt;
     }&lt;br /&gt;
 &lt;br /&gt;
     // Authcode&lt;br /&gt;
     $args['authCode'] = $domain-&amp;gt;authCode;&lt;br /&gt;
 &lt;br /&gt;
     // Unlock domain, if required&lt;br /&gt;
     if ($verbose) {&lt;br /&gt;
       echo &amp;quot;Unlocking domain [$dom] (if applicable)\n&amp;quot;;&lt;br /&gt;
     }&lt;br /&gt;
     if ($domain-&amp;gt;isLocked) {&lt;br /&gt;
       if ($testMode) {&lt;br /&gt;
         echo &amp;quot;TEST MODE: skipping unlocking domain\n&amp;quot;;&lt;br /&gt;
       }&lt;br /&gt;
       else {&lt;br /&gt;
         try {&lt;br /&gt;
           $isLocked = Transip_DomainService::unsetLock($dom);&lt;br /&gt;
         }&lt;br /&gt;
         catch(SoapFault $e)&lt;br /&gt;
         {&lt;br /&gt;
           // It is possible that an error occurs when connecting to the TransIP Soap API,&lt;br /&gt;
           // those errors will be thrown as a SoapFault exception.&lt;br /&gt;
           echo &amp;quot;@@ERROR: An error occurred while unlocking domain [$dom]: &amp;quot; . htmlspecialchars($e-&amp;gt;getMessage()).&amp;quot;\n&amp;quot;;&lt;br /&gt;
         }&lt;br /&gt;
       }&lt;br /&gt;
     }&lt;br /&gt;
 &lt;br /&gt;
     list($d, $e) = explode('.', $dom, 2);&lt;br /&gt;
     $args['domain'] = array(&lt;br /&gt;
       'name' =&amp;gt; $d,&lt;br /&gt;
       'extension' =&amp;gt; $e,&lt;br /&gt;
     );&lt;br /&gt;
     $args['period'] = 1;&lt;br /&gt;
 &lt;br /&gt;
     if ($verbose) {&lt;br /&gt;
       echo &amp;quot;Start transfer for domain [$dom] in Openprovider with the following data array:\n&amp;quot;;&lt;br /&gt;
       print_r($args);&lt;br /&gt;
     }&lt;br /&gt;
     if ($testMode) {&lt;br /&gt;
       echo &amp;quot;TEST MODE: skip domain transfer for [$dom]\n&amp;quot;;&lt;br /&gt;
     }&lt;br /&gt;
     else {&lt;br /&gt;
       $request = new OP_Request;&lt;br /&gt;
       $request-&amp;gt;setCommand('transferDomainRequest')&lt;br /&gt;
         -&amp;gt;setAuth($auth)&lt;br /&gt;
         -&amp;gt;setArgs($args);&lt;br /&gt;
       $reply = $api-&amp;gt;process($request);&lt;br /&gt;
       if ($reply-&amp;gt;getFaultCode() != 0) {&lt;br /&gt;
         echo &amp;quot;@@ERROR on domain transfer [$dom]: &amp;quot;.$reply-&amp;gt;getFaultCode().' - '.$reply-&amp;gt;getFaultString().&amp;quot;\n&amp;quot;;&lt;br /&gt;
         if ($verbose) {&lt;br /&gt;
           echo &amp;quot;Full data array:\n&amp;quot;;&lt;br /&gt;
           print_r($args);&lt;br /&gt;
         }&lt;br /&gt;
       }&lt;br /&gt;
       else {&lt;br /&gt;
         echo &amp;quot;Transfer for $dom successfully requested\n&amp;quot;;&lt;br /&gt;
       }&lt;br /&gt;
     }&lt;br /&gt;
   }&lt;br /&gt;
 &lt;br /&gt;
   function createOpenproviderZone($domain, $dnsEntries) {&lt;br /&gt;
     global $api, $auth;&lt;br /&gt;
     global $testMode, $withDns, $verbose;&lt;br /&gt;
 &lt;br /&gt;
     list($d, $e) = explode('.', $domain, 2);&lt;br /&gt;
 &lt;br /&gt;
     // Check if a zone already exists&lt;br /&gt;
     $request = new OP_Request;&lt;br /&gt;
     $request-&amp;gt;setCommand('retrieveZoneDnsRequest')&lt;br /&gt;
       -&amp;gt;setAuth($auth)&lt;br /&gt;
       -&amp;gt;setArgs(array(&lt;br /&gt;
         'name' =&amp;gt; $domain,&lt;br /&gt;
         'withRecords' =&amp;gt; false,&lt;br /&gt;
         'withHistory' =&amp;gt; false&lt;br /&gt;
       ));&lt;br /&gt;
     $reply = $api-&amp;gt;process($request);&lt;br /&gt;
     $response = $reply-&amp;gt;getValue();&lt;br /&gt;
     if ($response) {&lt;br /&gt;
       if ($withDns == 'overwrite') {&lt;br /&gt;
         if ($testMode) {&lt;br /&gt;
           echo &amp;quot;@@WARNING: TEST MODE: Zone for [$domain] already exists, skip removing of existing zone\n&amp;quot;;&lt;br /&gt;
         }&lt;br /&gt;
         else {&lt;br /&gt;
           echo &amp;quot;@@WARNING: Zone for [$domain] already exists; removing existing zone\n&amp;quot;;&lt;br /&gt;
 &lt;br /&gt;
           $request = new OP_Request;&lt;br /&gt;
           $request-&amp;gt;setCommand('deleteZoneDnsRequest')&lt;br /&gt;
             -&amp;gt;setAuth($auth)&lt;br /&gt;
             -&amp;gt;setArgs(array(&lt;br /&gt;
               'domain' =&amp;gt; array(&lt;br /&gt;
                 'name' =&amp;gt; $d,&lt;br /&gt;
                 'extension' =&amp;gt; $e&lt;br /&gt;
               ),&lt;br /&gt;
             ));&lt;br /&gt;
           $reply = $api-&amp;gt;process($request);&lt;br /&gt;
           $response = $reply-&amp;gt;getValue();&lt;br /&gt;
         }&lt;br /&gt;
       }&lt;br /&gt;
       else {&lt;br /&gt;
         echo &amp;quot;@@WARNING: Zone for [$domain] already exists; skipping import\n&amp;quot;;&lt;br /&gt;
       }&lt;br /&gt;
     }&lt;br /&gt;
 &lt;br /&gt;
     $records = array();&lt;br /&gt;
     foreach ($dnsEntries as $record) {&lt;br /&gt;
       if (in_array($record-&amp;gt;type, array('NS', 'SOA'))) {&lt;br /&gt;
         continue;&lt;br /&gt;
       }&lt;br /&gt;
 &lt;br /&gt;
       if (in_array($record-&amp;gt;type, array('MX', 'SRV'))) {&lt;br /&gt;
         list($prio, $value) = explode(' ', $record-&amp;gt;content, 2);&lt;br /&gt;
       }&lt;br /&gt;
       else {&lt;br /&gt;
         $prio = NULL;&lt;br /&gt;
         $value = $record-&amp;gt;content;&lt;br /&gt;
       }&lt;br /&gt;
 &lt;br /&gt;
       $records[] = array(&lt;br /&gt;
         'type'  =&amp;gt; $record-&amp;gt;type,&lt;br /&gt;
         'name'  =&amp;gt; ($record-&amp;gt;name == '@' ? '' : $record-&amp;gt;name),&lt;br /&gt;
         'value' =&amp;gt; ($value == '@' ? $domain : $value),&lt;br /&gt;
         'prio'  =&amp;gt; $prio,&lt;br /&gt;
         'ttl'   =&amp;gt; ($record-&amp;gt;expire &amp;lt; 600 ? 600 : $record-&amp;gt;expire),&lt;br /&gt;
       );&lt;br /&gt;
     }&lt;br /&gt;
 &lt;br /&gt;
     if ($testMode) {&lt;br /&gt;
       echo &amp;quot;TEST MODE - skip DNS zone creation for $domain\n&amp;quot;;&lt;br /&gt;
       if ($verbose) {&lt;br /&gt;
         echo &amp;quot;Zone contents:\n&amp;quot;;&lt;br /&gt;
         print_r($records);&lt;br /&gt;
       }&lt;br /&gt;
       return true;&lt;br /&gt;
     }&lt;br /&gt;
     else {&lt;br /&gt;
       $request = new OP_Request;&lt;br /&gt;
       $request-&amp;gt;setCommand('createZoneDnsRequest')&lt;br /&gt;
         -&amp;gt;setAuth($auth)&lt;br /&gt;
         -&amp;gt;setArgs(array(&lt;br /&gt;
           'domain' =&amp;gt; array(&lt;br /&gt;
             'name' =&amp;gt; $d,&lt;br /&gt;
             'extension' =&amp;gt; $e,&lt;br /&gt;
           ),&lt;br /&gt;
           'type' =&amp;gt; 'master',&lt;br /&gt;
           'records' =&amp;gt; $records,&lt;br /&gt;
         ));&lt;br /&gt;
       $reply = $api-&amp;gt;process($request);&lt;br /&gt;
       if ($reply-&amp;gt;getFaultCode() != 0) {&lt;br /&gt;
         echo &amp;quot;@@ERROR on DNS zone creation for [$domain]: &amp;quot;.$reply-&amp;gt;getFaultCode().' - '.$reply-&amp;gt;getFaultString().&amp;quot;; full data array:\n&amp;quot;;&lt;br /&gt;
         print_r($records);&lt;br /&gt;
         return false;&lt;br /&gt;
       }&lt;br /&gt;
       else {&lt;br /&gt;
         if ($verbose) {&lt;br /&gt;
           echo &amp;quot;DNS zone for $domain successfully created with the following records:\n&amp;quot;;&lt;br /&gt;
           print_r($records);&lt;br /&gt;
         }&lt;br /&gt;
         return true;&lt;br /&gt;
       }&lt;br /&gt;
     }&lt;br /&gt;
   }&lt;br /&gt;
   &lt;br /&gt;
   function createOpenproviderContact($contact) {&lt;br /&gt;
     global $api, $auth;&lt;br /&gt;
     global $testMode, $verbose;&lt;br /&gt;
 &lt;br /&gt;
     // Split telephone number&lt;br /&gt;
     // Country code separated?&lt;br /&gt;
     $matches = array();&lt;br /&gt;
     if (preg_match('/^(\+?\d+)[ \-\.](.*)$/', $contact-&amp;gt;phoneNumber, $matches)) {&lt;br /&gt;
       $tel1 = (substr($matches[1], 0, 1) == '+' ? '' : '+').$matches[1];&lt;br /&gt;
       $rest = preg_replace('/[^\d]/', '', $matches[2]);&lt;br /&gt;
     }&lt;br /&gt;
     // Else consider first 2 numbers the country code&lt;br /&gt;
     else {&lt;br /&gt;
       $tel = preg_replace('/[^\d]/', '', $contact-&amp;gt;phoneNumber);&lt;br /&gt;
       $tel1 = '+'.substr($tel, 0, 2);&lt;br /&gt;
       $rest = $matches[2];&lt;br /&gt;
     }&lt;br /&gt;
     $tel2 = substr($rest, 0, 2);&lt;br /&gt;
     $tel3 = substr($rest, 2);&lt;br /&gt;
 &lt;br /&gt;
     // Split address number&lt;br /&gt;
     $matches = array();&lt;br /&gt;
     if (preg_match('/^\d+$/', $contact-&amp;gt;number)) {&lt;br /&gt;
       $number = $contact-&amp;gt;number;&lt;br /&gt;
       $suffix = NULL;&lt;br /&gt;
     }&lt;br /&gt;
     else if (preg_match('/^(\d+)([^\d].*)$/', $contact-&amp;gt;number, $matches)) {&lt;br /&gt;
       $number = $matches[1];&lt;br /&gt;
       $suffix = $matches[2];&lt;br /&gt;
     }&lt;br /&gt;
     else {&lt;br /&gt;
       $number = 1;&lt;br /&gt;
       $suffix = $contact-&amp;gt;number;&lt;br /&gt;
     }&lt;br /&gt;
 &lt;br /&gt;
     $args = array(&lt;br /&gt;
       'companyName' =&amp;gt; $contact-&amp;gt;companyName,&lt;br /&gt;
       'name' =&amp;gt; array(&lt;br /&gt;
         'firstName' =&amp;gt; $contact-&amp;gt;firstName,&lt;br /&gt;
         'prefix' =&amp;gt; $contact-&amp;gt;middleName,&lt;br /&gt;
         'lastName' =&amp;gt; $contact-&amp;gt;lastName,&lt;br /&gt;
       ),&lt;br /&gt;
       'phone' =&amp;gt; array(&lt;br /&gt;
         'countryCode' =&amp;gt; $tel1,&lt;br /&gt;
         'areaCode' =&amp;gt; $tel2,&lt;br /&gt;
         'subscriberNumber' =&amp;gt; $tel3,&lt;br /&gt;
       ),&lt;br /&gt;
       'address' =&amp;gt; array(&lt;br /&gt;
          'street' =&amp;gt; $contact-&amp;gt;street,&lt;br /&gt;
          'number' =&amp;gt; $number,&lt;br /&gt;
          'suffix' =&amp;gt; $suffix,&lt;br /&gt;
          'zipcode' =&amp;gt; $contact-&amp;gt;postalCode,&lt;br /&gt;
          'city' =&amp;gt; $contact-&amp;gt;city,&lt;br /&gt;
          'country' =&amp;gt; strtoupper($contact-&amp;gt;country),&lt;br /&gt;
       ),&lt;br /&gt;
       'email' =&amp;gt; $contact-&amp;gt;email,&lt;br /&gt;
       'additionalData' =&amp;gt; ($contact-&amp;gt;companyKvk ? array('companyRegistrationNumber' =&amp;gt; $contact-&amp;gt;companyKvk) : NULL),&lt;br /&gt;
     );&lt;br /&gt;
 &lt;br /&gt;
     if ($testMode) {&lt;br /&gt;
       echo &amp;quot;TEST MODE - skip handle creation\n&amp;quot;;&lt;br /&gt;
       if ($verbose) {&lt;br /&gt;
         echo &amp;quot;Handle details are the following:\n&amp;quot;;&lt;br /&gt;
         print_r($args);&lt;br /&gt;
       }&lt;br /&gt;
       return true;&lt;br /&gt;
     }&lt;br /&gt;
     else {&lt;br /&gt;
       $request = new OP_Request;&lt;br /&gt;
       $request-&amp;gt;setCommand('createCustomerRequest')&lt;br /&gt;
         -&amp;gt;setAuth($auth)&lt;br /&gt;
         -&amp;gt;setArgs($args);&lt;br /&gt;
       $reply = $api-&amp;gt;process($request);&lt;br /&gt;
       if ($reply-&amp;gt;getFaultCode() != 0) {&lt;br /&gt;
         echo &amp;quot;@@ERROR on contact creation for [$domain]: &amp;quot;.$reply-&amp;gt;getFaultCode().' - '.$reply-&amp;gt;getFaultString().&amp;quot;; full data array:\n&amp;quot;;&lt;br /&gt;
         print_r($args);&lt;br /&gt;
         return false;&lt;br /&gt;
       }&lt;br /&gt;
       else {&lt;br /&gt;
         $response = $reply-&amp;gt;getValue();&lt;br /&gt;
         if ($verbose) {&lt;br /&gt;
           echo &amp;quot;Successfully created handle &amp;quot;.$response['handle'].&amp;quot;\n&amp;quot;;&lt;br /&gt;
         }&lt;br /&gt;
         return $response['handle'];&lt;br /&gt;
       }&lt;br /&gt;
     }&lt;br /&gt;
   }&lt;br /&gt;
 &lt;br /&gt;
 ?&amp;gt;&lt;/div&gt;</description>
			<pubDate>Mon, 13 May 2019 10:08:40 GMT</pubDate>			<dc:creator>WikiSysop</dc:creator>			<comments>https://doc.openprovider.eu/Talk:Bulk_transfer_domains_from_TransIP</comments>		</item>
	</channel>
</rss>