Doviz kuru çekimi yapıyorum. Localde çalışırken sunucuda çalışmıyor sizce neden olabilir?

Alıntı
Warning: Illegal string offset 'isim' in /home/public_html/doviz-sistem/index.php on line 19
Döviz Türü : D

Warning: Illegal string offset 'ForexSelling' in /home/public_html/doviz-sistem/index.php on line 21
Satış : D

Warning: Illegal string offset 'ForexBuying' in /home/public_html/doviz-sistem/index.php on line 23
Alış : D

<?php
include "doviz.php";
$doviz = new Doviz();

echo 'Döviz Türü : '.$doviz->get('USD')['Isim'];
echo '<br>';
echo 'Satış : '.$doviz->get('USD')['ForexSelling'];
echo '<br>';
echo 'Alış : '.$doviz->get('USD')['ForexBuying'];

//Capraz
//Capraz echo $doviz->getCrossRate('EUR')['rate']; 
?>
<?php

class Doviz {

private $page, $currencies;


public function __construct(){
    
    $this->page = new DOMDocument;
    $this->page->loadXML($this->getXML());

    $this->currencies = array();
    $this->initCurrencies();

    return $this;
    
}

private function getXML(){

    $xmlURL = 'http://www.tcmb.gov.tr/kurlar/today.xml';

    if(function_exists('curl_version')){
        $ch = curl_init();

        curl_setopt_array($ch, 
            array(
                CURLOPT_RETURNTRANSFER => 1,
                CURLOPT_URL    => $xmlURL
            )
        );

        $xmlPage = curl_exec($ch);
        curl_close($ch);
    }
    else{
        $xmlPage = file_get_contents($xmlURL);
    }

    return $xmlPage;
    
}

private function initCurrencies(){

    foreach($this->page->getElementsByTagName('Currency') as $currency){

        $currencyCode = $currency->getAttribute('CurrencyCode');

        $this->currencies[$currencyCode] = $this->getCurrencyData($currency, $currencyCode);

    }

}

private function getCurrencyData(DOMNode $currency, $currencyCode){

    $currencyData = array('CurrencyCode' => $currencyCode);

    foreach($currency->childNodes as $node){

        $currencyData[$node->nodeName] = $node->nodeValue;

    }

    $currencyData['crossRate'] = $this->getCrossRateData($currencyCode, 
            $currencyData['CrossRateUSD'], $currencyData['CrossRateOther']);

    return $currencyData;

}

private function getCrossRateData($currencyCode, $crossRateUSD, $crossRateOther){

    $crossRateType = empty($crossRateUSD) ? 
                    $currencyCode.'/USD' : 'USD/'.$currencyCode;

    $crossRate = empty($crossRateUSD) ? $crossRateOther : $crossRateUSD;

    return array('type' => $crossRateType, 'rate' => $crossRate);

}

public function getAll(){
    return $this->currencies;
}

public function get($currencyCode){
    return $this->currencies[$currencyCode] ?: 'Döviz yok.';
}

public function getAllCrossRates(){
    return array_map(function($currency){
        return $currency['crossRate'];
    }, $this->currencies);
}

public function getCrossRate($currencyCode){
    return $this->currencies[$currencyCode]['crossRate'];
}

}
?>