2012-01-19 2 views
0

Так что я пытаюсь использовать класс, который я нашел, чтобы исправить проблему электронной коммерции, которую у меня есть.simplexml_load_file() проблемы в классе PHP

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; 
    } 
} 

Использование:

$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: // PHP. net/manual/en/function.fopen.php для объяснения –

ответ

5

Ваш сервер не поддерживает удаленный доступ к файлам. Если у вас есть доступ Curl, вы могли бы получить данные XML таким образом, как и exampled ниже:

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

$xml = simplexml_load_string($data); 

// ... 
+0

вы правы ... моя местная машина работает ... спасибо – taylorjes

Смежные вопросы