2012-01-19 9 views
0

私は、私が持っている電子商取引の問題を解決するために見つけたクラスを使用しようとしています。ワシントン州オンラインストアでPHPクラス内のsimplexml_load_file()問題

Original Blog Post

配送先住所に基づいて税率を決定する必要があります。

WA Sales Tax Rate Lookup URL Interface

クラス:

/** 
* @author SmallDog 
* @contact [email protected] 
* @created 01-27-2011 
**/ 

class destinationTax 
{ 
    private $dor_url = 'http://dor.wa.gov'; 

    function __construct(){ } 

    function getTax($addr,$city,$zip) 
    { 
     $req = $this->dor_url."/AddressRates.aspx?output=xml&addr=$addr&city=$city&zip=$zip"; 
     return $this->_get_decoded($req); 
    } 

    private function _get_decoded($url) 
    { 
     $url = urlencode($url); 
     if($xml = simplexml_load_file($url)) 
     { 
      switch($xml->attributes()->code) 
      { 
       case 0: 
        // Code 0 means address was perfect 
        break; 
       case 1: 
        $xml->msg = "Warning: The address was not found, but the ZIP+4 was located."; 
        break; 
       case 2: 
        $xml->msg = "Warning: Neither the address or ZIP+4 was found, but the 5-digit ZIP was located."; 
        break; 
       case 3: 
        $xml->msg = "Error: The address, ZIP+4, and ZIP could not be found."; 
        break; 
       case 4: 
        $xml->msg = "Error: Invalid arguements."; 
        break; 
       case 5: 
        $xml->msg = "Error: Internal error."; 
      } 
     } 
     else $xml = "Error: Could not load XML."; 

     return $xml; 
    } 
} 

Useage:

$tax = new destinationTax; 
$tax = $tax->getTax("123 Main Street", "Kirkland", "98033"); 
echo $tax->attributes()->rate; 

エラー:

Warning: simplexml_load_file() [function.simplexml-load-file]: URL file-access is disabled in the server configuration in /.../.../classes.php

Warning: simplexml_load_file(http://dor.wa.gov/AddressRates.aspx?output=xml&addr=123+Main+Street&city=Kirkland&zip=98033) [function.simplexml-load-file]: failed to open stream: no suitable wrapper could be found in /.../.../classes.php

Warning: simplexml_load_file() [function.simplexml-load-file]: I/O warning : failed to load external entity "http%3A%2F%2Fdor.wa.gov%2FAddressRates.aspx%3Foutput%3Dxml%26addr%3D123+Main+Street%26city%3DKirkland%26zip%3D98033" in /.../.../classes.php

Fatal error: Call to a member function attributes() on a non-object in /.../.../tax.php

+3

'URLファイル・アクセスは、サーバーconfiguration'で無効になっていることは比較的あいまいで、HTTPを参照してください:あなたはcURLのアクセス権を持っている場合は、以下のexampledとして、そのようにXMLデータを得ることができる// PHPを。説明のためにnet/manual/en/function.fopen.php –

答えて

5

サーバーはリモートファイルアクセスをサポートしていません。 ...

$curl = curl_init($url); 
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); 
$data = curl_exec($curl); 

$xml = simplexml_load_string($data); 

// ... 
+0

あなたは正しいです...私のローカルマシンは動作します...ありがとう – taylorjes