Проблемы Simplexml_load_file, вызванные прокси - PullRequest
1 голос
/ 01 февраля 2012

Я создал скрипт локально, который отлично работает. Я переместил этот скрипт на сервер, который находится за прокси, и у меня возникли некоторые проблемы.

Вот код:

    $yahooXML = simplexml_load_file('http://query.yahooapis.com/v1/public/yql?q=select+*%20from%20yahoo.finance.xchange%20where%20pair%20in%20(%22'.$from.''.$to.'%22)&diagnostics=true&env=store%3A%2F%2Fdatatables.org%2Falltableswithkeys'); 

    print_r($yahooXML);
    die();

Я получаю сообщение об ошибке при открытии потока и ввода / вывода: не удалось загрузить ошибку внешнего объекта, используя это.

Я исследовал использование cURL для загрузки данных, а затем проанализировал simplexml, но не уверен, возможно ли это?

есть идеи?

Edit:

Я загрузил страницу с помощью CURL, которая также не удалась, поэтому я добавил опцию прокси, и она исправила это. Теперь мне просто нужно загрузить это с XML?

   function curl($url){
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
        curl_setopt($ch, CURLOPT_PROXY, 'proxysg.uwe.ac.uk:8080'); 
        $data = curl_exec($ch);
        curl_close($ch);
        return $data;
    }


    $feed = 'http://query.yahooapis.com/v1/public/yql?q=select+*%20from%20yahoo.finance.xchange%20where%20pair%20in%20(%22'.$from.''.$to.'%22)&diagnostics=true&env=store%3A%2F%2Fdatatables.org%2Falltableswithkeys';
    $data = curl($feed);

    echo $data;
    die();

1 Ответ

0 голосов
/ 02 февраля 2012

Как только у вас есть файл XML и вы убедились, что это правильный XML, вы можете загрузить его в php с помощью simplexml_load_string () или simplexml_load_file () в зависимости от того, что у вас есть,

Если ваша переменная $ data является строкой с правильно сформированным XML, то:

$xml = simplexml_load_string($data);
print_r($xml);

должно работать нормально.Конечно, теперь у вас есть простой объект xml, который будет работать с любой из обычных функций simplexml.

...