Servack 15 октября 2014 0 3
Добрый день, недавно заказал скрипт парсинга погоды с xml. Собственно сам скрипт вот:
<?php

function parseData(){  
  $content = file_get_contents("http://xml.meteoservice.ru/export/gismeteo/point/37.xml");
  $xmlParser = new SimpleXMLElement($content);  
  return $xmlParser;
}

function getAttributes($xml){
  $ret = array();
  foreach($xml->attributes() as $key=>$value) {
    $ret[$key] = $value;
  }
  return $ret;
}

$mmweather = parseData();
?>
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>gismeteo parser</title>

    <!-- Bootstrap -->
    <link href="/css/bootstrap.min.css" rel="stylesheet">

    <!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->
    <!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
    <!--[if lt IE 9]>
      
      
    <![endif]-->
  </head>
  <body>
    <div class="container">
      <h1>Wheather</h1>
      <?php $town = getAttributes($mmweather->REPORT->TOWN) ?>
      <h3>Town: <?php print urldecode($town["sname"]);?></h3>
      <table class="table table-hover table-responsive">
        <thead>
        <tr>
          <th></th>
          <th></th>
          <th></th>
          <th></th>
        </tr>
        </thead>
        <tbody>
      <?php foreach($mmweather->REPORT->TOWN->FORECAST as $forecast) : ?>
        <tr>
          <?php $attr = getAttributes($forecast);?>
          <td colspan="4"><?php print $attr["day"]; ?>.<?php print $attr["month"]; ?>.<?php print $attr["year"]; ?> 
          at <?php print $attr["hour"]; ?>:00</td>        
        </tr>
        <tr>
          <td><?php $temp = getAttributes($forecast->TEMPERATURE); ?> TEMPERATURE: <?php print $temp["min"];?> - <?php print $temp["max"];?></td>
          <td><?php $press = getAttributes($forecast->PRESSURE); ?> PRESSURE: <?php print $press["min"];?> - <?php print $press["max"];?></td>
          <td><?php $wind = getAttributes($forecast->WIND); ?> WIND: <?php print $wind["min"];?> - <?php print $wind["max"];?></td>
          <td><?php $relwet = getAttributes($forecast->RELWET); ?> RELWET: <?php print $relwet["min"];?> - <?php print $relwet["max"];?></td>
        </tr>
      <?php endforeach; ?>
        </tbody>
      </table>
      <?php 
      /*print "<pre>";
      print_r($mmweather);
      print "</pre>";*/
      ?>  
    </div>
    
    <!-- jQuery (necessary for Bootstrap's JavaScript plugins) -->
    
    <!-- Include all compiled plugins (below), or include individual files as needed -->
    
  </body>
</html>
</html>


Я убрал все лишнее кроме php и получилось вот:
function parseData(){  
  $content = file_get_contents("http://xml.meteoservice.ru/export/gismeteo/point/37.xml");
  $xmlParser = new SimpleXMLElement($content);  
  return $xmlParser;
}

function getAttributes($xml){
  $ret = array();
  foreach($xml->attributes() as $key=>$value) {
    $ret[$key] = $value;
  }
  return $ret;
}

$mmweather = parseData();

$town = getAttributes($mmweather->REPORT->TOWN) 
print urldecode($town["sname"]);
foreach($mmweather->REPORT->TOWN->FORECAST as $forecast) : 
$attr = getAttributes($forecast);
print $attr["day"]; .print $attr["month"]; . print $attr["year"];  
          at print $attr["hour"]; 

$temp = getAttributes($forecast->TEMPERATURE);  TEMPERATURE:  print $temp["min"]; - print $temp["max"];
      $press = getAttributes($forecast->PRESSURE);  PRESSURE:  print $press["min"]; -  print $press["max"];
         $wind = getAttributes($forecast->WIND); WIND:  print $wind["min"];- print $wind["max"];
          $relwet = getAttributes($forecast->RELWET); RELWET: print $relwet["min"]; - print $relwet["max"];

endforeach;


Но когда вставляю этот сниппет, то у меня вместо сайта белый экран. Подскажите что не так?
3 комментария
l
linux_fan 15 октября 2014г в 04:58 #
Синтаксис через онлайн чекер проверьте. Или просто в пхп файл скопируйте и запустите. Он и покажет ошибки если их вывод не отключён
S
Servack 15 октября 2014г в 06:25 #
Пишет что нету ошибок
Fi1osof1
Fi1osof 15 октября 2014г в 14:51 #
Белый экран - 99.99% критическая ошибка php.
Зайдите в core/config/config.inc.php и пропишите где-нибудь в начале ini_set('display_errors', 1);
Если данная настройка не запрещена, то на странице вы увидите сообщение об ошибке.
Авторизуйтесь или зарегистрируйтесь (можно через соцсети ), чтобы оставлять комментарии.