2015-03-23 2 views
0

Im пытается загрузить следующий XML-url и некоторые данные в моей базе данных.Получение некоторых данных из файла XML и ввода в sql

https://zkillboard.com/api/kills/corporationID/98115872/pastSeconds/7200/xml/

У меня есть следующий код:

<?php 
// INCLUDE DB CONNECTION FILE 
include("includes/connect.php"); 
// CHANGE THE VALUES HERE 
include("includes/config.php"); 
$url = "https://zkillboard.com/api/kills/corporationID/98115872/pastSeconds/7200/xml/"; 
// RUN XML DATA READY FOR INSERT 
$xml = simplexml_load_file($url); 
// Loop Through Names 
$insertValues = array(); 
$modifiedTS = date('Y-m-d h:i:s'); 
foreach ($xml->result->rowset[0] as $value) 
{ 
     //Prepare the values 
     $killID = $value['killID']; 
     $solarSystemID = mysql_real_escape_string($value['solarSystemID']); 
     $killTime = $value['killTime']; 
     $moonID = $value['moonID']; 
     $allianceName = $value['allianceName']; 
     $corporationName = $value['corporationName']; 
     $damageTaken = $value['damageTaken']; 
//Create and run ONE INSERT statement (with UPDATE clause) 
    $insert = "INSERT INTO `killLog` (killID,solarSystemID,killTime,moonID,allianceName,corporationName,damageTaken,last_modified) VALUES('$killID','$solarSystemID','$killTime','$moonID','$allianceName','$corporationName','$damageTaken','$modifiedTS') ON DUPLICATE KEY UPDATE 
last_modified = '$modifiedTS'"; 
mysql_query($insert) or die(mysql_error()); 
}; 
?> 

, но я получаю следующие ошибки при обращении к файлу PHP.

Предупреждение: simplexml_load_file (https://zkillboard.com/api/kills/corporationID/98115872/pastSeconds/7200/xml/) [function.simplexml-нагрузки файл]: не удалось открыть поток: HTTP запрос не удалось! HTTP/1.1 406 Недопустимое кодирование. Пожалуйста, используйте GZIP или выкачать в /homepages/*****/*****/htdocs/*****/tool/admin/api_killLog.php на линии 14

Предупреждение: simplexml_load_file () [function.simplexml-load-file]: I/O предупреждение: не удалось загрузить внешний объект «https://zkillboard.com/api/kills/corporationID/98115872/pastSeconds/7200/xml/» в /homepages/*****/*****/htdocs/**** */инструмент/администратор/api_killLog.php на линии 14

Внимание: Недействительный аргумент для Еогеасп() в /*****/*****/htdoc/*****/инструмент /admin/api_killLog.php в строке 19

что я делаю неправильно ??

+0

возможно дубликат [Load архивированная XML файл с SimpleXML \ _load \ _file()] (http://stackoverflow.com/questions/6973672/load-gzipped-xml-file-with-simplexml-load-file) –

+0

Я считаю, что эта ссылка может помочь с моей ошибкой, мне нужно передать gzip в заголовки или что-то еще ? Как я могу это сделать? –

ответ

0

Его простой случай установки дефлята в загоне для завивки.

Мой код

function get_url_content($url) { 
    $ch = curl_init(); 
    curl_setopt($ch, CURLOPT_URL, $url); 
    curl_setopt($ch, CURLOPT_HEADER, 0); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
    curl_setopt($ch, CURLOPT_USERAGENT, 'xxxxxx Scraper Tool 1.1'); 
    curl_setopt($ch, CURLOPT_ENCODING, 'deflate'); 
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 0); 

    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); 
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0); 
    curl_setopt($ch, CURLOPT_TIMEOUT, 20); 

    $output = curl_exec($ch); 

    if (curl_errno($ch)) { 
     die('Curl error: ' . curl_error($ch)); 
    } 

    if (function_exists('curl_getopt')) { 
     $http_code = curl_getopt($ch, CURLINFO_HTTP_CODE); 
     if ($http_code != 200) { 
      die('Error response from their server - error code: ' . $http_code); 
     } 
    } 

    curl_close($ch); 

    return $output; 
} 

Если вам нужна рука с вашего кодирования отправить мне evemail в игре, DaveTheGreat

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