Это использует API Wolfram Alpha для получения самолетов поблизости, а затем отображает его. Как удалить направление плоскости и фразу «Наклонное расстояние»?Фильтрация строковых массивов в PHP
Мой код (PHP):
<html>
<head>
<link href='http://fonts.googleapis.com/css?family=Open+Sans' rel='stylesheet' type='text/css'>
<style>
body {
background-color: rgba(255, 255, 255, 0.3);
font-family: 'Open Sans', sans-serif;
text-align:center;
}
</style>
</head>
<?php
$url = 'http://api.wolframalpha.com/v2/query?input=planes+seen+from+dallas&appid=2UJ62E-Q6RT3T89P8';
$parser = new XMLReader;
$parser->open($url);
while ($parser->read()) {
if ($parser->nodeType === XMLReader::ELEMENT) {
while ($parser->name === 'pod' && $parser->getAttribute('title') !== 'Result')
$parser->next('pod'); // jump to the next pod node
if ($parser->name === 'plaintext') {
$str = $parser->readString();
$parser->close();
break;
}
}
}
$lines = explode("\n", $str);
$result = array();
foreach ($lines as $line) {
$fields = explode(' | ', $line);
$flight = array_shift($fields);
$flight = $flight . "<hr>"; //DELETE IF DOESN'T WORK
if ($flight === '')
$cols = $fields;
elseif (isset($fields[1])) {
$result[$flight][$cols[0]] = $fields[0];
$result[$flight][$cols[1]] = $fields[1];
}
}
foreach($result as $key=>$value)
{
echo $key;
foreach($value as $value1){
echo $value1;
echo " ";
}
}
Пример выходных данных ниже:
slant distance ENY flight 3278
14 miles NNW Frontier Airlines flight 72
44 miles N American Airlines flight 1241
15 miles NW American Airlines flight 396
23 miles W Atlantic Southeast Airlines flight 6104
49 miles SSE
То, что я хочу, чтобы это выглядело как:
Frontier flight 3278
Airlines flight 72
American Airlines flight 1241
American Airlines flight 396
Atlantic Southeast Airlines flight 6104
API-интерфейс не предлагают выходные параметры для данных, например csv, json, xml и т. д.? – chris85
Да, в XML, где $ url - это url для образца api output. –
Да, я вижу это, но данные, которые вы хотите, на самом деле не в XML. Все это является открытым текстом, что делает его гораздо более восприимчивым к ошибкам. От '14 миль В Frontier Airlines рейса 72' вы только хотите ' 14 миль Frontier Airlines рейса 72' и удалить одно вхождение 'наклонное расстояние', это правильно? – chris85