UpdateCurrencyRate.php
[Pman.Core] / UpdateCurrencyRate.php
index 64ed0b3..433f07c 100644 (file)
@@ -30,8 +30,6 @@ class Pman_Core_UpdateCurrencyRate extends Pman
     
     function get()
     {
-        print_r(date('m/d/y', strtotime("-6 MONTH")));exit;
-        
         echo "obtain the currency lists... \n";
         
         $currency = array();
@@ -57,38 +55,56 @@ class Pman_Core_UpdateCurrencyRate extends Pman
             die('no any currency');
         }
         
-        foreach ($currency as $c){
+        $fromDate = date('m/d/y', strtotime("-6 MONTH"));
+        $toDate = date('m/d/y');
+        
+        foreach ($currency as $k => $c){
             $params = array(
-                'lang' => 'en',
-                'result' => 1,
-                'date1' => '10/14/14',
-                'date'=> date('m/d/y'),
-                'date_fmt' => 'us',
-                'exch' => 'CNY',
-                'expr' => 'USD',
-                'margin_fixed' => 0,
-                'format'=> 'HTML'
+                'lang'          => 'en',
+                'result'        => 1,
+                'date1'         => $fromDate,
+                'date'          => $toDate,
+                'date_fmt'      => 'us',
+                'exch'          => $c,
+                'expr'          => 'USD',
+                'margin_fixed'  => 0,
+                'format'        => 'HTML'
             );
-        }
-        
+            
+            $response = $this->curl($this->actionUrl, $params, 'POST');
         
-        
-        
-//        $params = array(
-//            'lang' => 'en',
-//            'result' => 1,
-//            'date1' => '10/14/14',
-//            'date'=> '10/20/14',
-//            'date_fmt' => 'us',
-//            'exch' => 'CNY',
-//            'expr' => 'USD',
-//            'margin_fixed' => 0,
-//            'format'=> 'HTML'
-//        );
-//        
-//        $response = $this->curl($this->actionUrl, $params, 'POST');
-//        
-//        file_put_contents('/tmp/test.html', $response);
+            libxml_use_internal_errors (true);
+
+            $doc = new DOMDocument();
+            $doc->loadHTML($response);
+
+            libxml_use_internal_errors (false);
+
+            $xpath = new DOMXpath($doc);
+
+            $elements = $xpath->query("//td[@id='content_section']/table/tr[last()]/td/table/tr[1]/td[last()]");
+
+            $rate = empty($elements->item(0)->nodeValue) ? 0 : $elements->item(0)->nodeValue * 1;
+
+            $curr = DB_DataObject::factory('core_curr_rate');
+            
+            $curr->curr = $c;
+            
+            $o = false;
+            
+            if($curr->find(true)){
+                $o = clone($curr);
+            }
+            
+            $curr->setFrom(array(
+                'rate'  => $rate,
+                'from'  => date('Y-m-d H:i:s', strtotime($fromDate)),
+                'to'    => date('Y-m-d H:i:s', strtotime($toDate))
+            ));
+
+            (empty($o)) ? $curr->insert() : $curr->update($o);
+            
+        }
         
     }