Получить текст из вывода скрипта

все, я использую этот код довольно давно

<?php
$url = 'http://www.smn.gov.ar/mensajes/index.php?observacion=metar&operacion=consultar&87582=on&87641=on&87750=on&87765=on&87222=on&87761=on&87860=on&87395=on&87344=on&87166=on&87904=on&87571=on&87347=on&87803=on&87576=on&87162=on&87532=on&87497=on&87097=on&87046=on&87548=on&87217=on&87506=on&87692=on&87418=on&87574=on&87715=on&87374=on&87289=on&87852=on&87178=on&87896=on&87823=on&87270=on&87155=on&87453=on&87925=on&87934=on&87480=on&87047=on&87553=on&87311=on&87909=on&87436=on&87509=on&87912=on&87623=on&87444=on&87129=on&87371=on&87645=on&87022=on&87127=on&87828=on&87121=on&87938=on&87791=on&87448=on';
$dom = new DOMDocument();
libxml_use_internal_errors(true);
$dom->loadHTMLFile($url);
libxml_clear_errors();
$xpath = new DOMXpath($dom);

// search for td's containing METAR
$metars = $xpath->query('//td[contains(text(), "METAR SA")]');
if($metars->length <= 0) {
echo 'no metars found';
exit;
}

$data = array();
foreach($metars as $metar) {
$data[] = $metar->nodeValue;
}

echo '<pre>';
print_r($data);

Ну, это работало нормально, пока программа, отвечающая за чтение вывода, не была обновлена, и теперь ей нужен четкий вывод.

На момент я получаю это:
http://ar.ivao.aero/weather/metar.php
Но программе это нужно так:

SABE 161600Z 02006KT 9999 FEW030 24/18 Q1009 =
SAZA 161600Z 18011KT CAVOK 24/08 Q1010 =
SAZB 161700Z 27012KT CAVOK 21/09 Q1011 =

Я не думал, что, возможно, использование другого скрипта, такого как file_get_content (), может быть полезным, но опять же он покажет информацию, которую я не хочу.
Я также попытался заменить print_r () на var_dump (), но это то же самое

Есть идеи?
Есть в любом случае, чтобы получить эту информацию в простом текстовом файле?

С Уважением,

0

Решение

Вам нужно отфильтровать некоторые данные. Попытайтесь выяснить, что общего в информации, которую вам нужно вывести. Например, вся необходимая информация из вашего сырья print_r данные, кажется, бьются с METAR. Так

echo '<pre>';
foreach($metars as $metar) {
if(substr($metar->nodeValue, 0, 5) === "METAR") {
echo str_replace("METAR ", "", $metar->nodeValue) . PHP_EOL;
}
}

Это удаляет любые строки, как Aeropuerto FORMOSA с выхода.

1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector