Я использую удаленный API для библиотеки.
$graph = new \stdclass;
$graph->width = 500;
$graph->height = 350;
$data1 = array('gross'=>23, 'taxed'=>45, 'discount'=>20, 'revenue'=>32, 'due'=>14);
$data2 = array('gross'=>15, 'taxed'=>23, 'discount'=>23,'revenue'=>12, 'due'=>17);
$data3 = array('gross'=>43, 'taxed'=>23, 'discount'=>34, 'revenue'=>16, 'due'=>20);
$graph->data = array($data1,$data2,$data3);
$graph->setBarColor = array('blue','green','yellow');
$graph->setLegend = 'true';
$graph->setLegendTitle = array('Today','MTD','YTD');
$graph->setTitle = 'Revenue Stats';
$graph->setTitleLocation = 'left';
//JSON encode graph object
$encoded = urlencode(json_encode($graph));
//retrieve XML
$target = 'http://www.ebrueggeman.com/phpgraphlib/api/?g=' . $encoded . '&type=xml';`
(2/2) Exception
String could not be parsed as XML
(1/2) ErrorException
SimpleXMLElement::__construct():
Start tag expected, '<' not found
Работает нормально с одним набором данных, но я не могу загрузить несколько наборов данных.
Какие-либо предложения?
Нет, API не поддерживает его, он сломан .. простая проверка URL производит некоторый неверный XML.
$this->data[0],$this->data[1],$this->data[2]<br><br>$graph->addData($this->data[0],$this->data[1],$this->data[2]);<br><?xml version="1.0"?>
<phpgrahphlib>
<imageName>230_0046831d980a56de52331b09b7eb7efc.png</imageName>
<imageLocation>http://www.ebrueggeman.com/sites/www.ebrueggeman.com/files/phpgraphlib_api/230_0046831d980a56de52331b09b7eb7efc.png</imageLocation>
<imageTag><![CDATA[<img width="500" height="350" src="http://www.ebrueggeman.com/sites/www.ebrueggeman.com/files/phpgraphlib_api/230_0046831d980a56de52331b09b7eb7efc.png" />]]></imageTag>
<error></error>
<version>2.30</version>
</phpgrahphlib>
Но генерирует ли граф:
Таким образом, вы можете попытаться удалить все, прежде чем <?
тогда просто используйте simplexml_load_string. Возможно, вы хотите сообщить об ошибке, чтобы она была исправлена.
<?php
$xml = file_get_contents($target);
$target = strstr($xml, '<?');
$xml_object = simplexml_load_string($target);
echo 'Image Tag: '. $xml_object->imageTag.PHP_EOL;
echo 'Errors: '. $xml_object->error.PHP_EOL;
Других решений пока нет …