mirror of
https://port.numenaute.org/aleajactaest/khanat-opennel-code.git
synced 2024-11-25 00:26:17 +00:00
119 lines
2.9 KiB
PHP
119 lines
2.9 KiB
PHP
|
<?php
|
||
|
|
||
|
function tool_ee_parse_getview($data)
|
||
|
{
|
||
|
$entity_data = array();
|
||
|
|
||
|
reset($data);
|
||
|
foreach($data as $ais_data)
|
||
|
{
|
||
|
$service_name = 'n/a';
|
||
|
$answers = 0;
|
||
|
$values = 0;
|
||
|
$values_read = 0;
|
||
|
|
||
|
$entity = array();
|
||
|
|
||
|
reset($ais_data);
|
||
|
foreach($ais_data as $ais_line)
|
||
|
{
|
||
|
$ais_line = trim($ais_line);
|
||
|
if (ereg("^===\[ Service ([^\ ]+) returned \]===$", $ais_line, $eregs))
|
||
|
{
|
||
|
$service_name = $eregs[1];
|
||
|
}
|
||
|
elseif (ereg("^have ([[:digit:]]+) answer$", $ais_line, $eregs))
|
||
|
{
|
||
|
$answers = $eregs[1];
|
||
|
}
|
||
|
elseif (ereg("^have ([[:digit:]]+) value$", $ais_line, $eregs))
|
||
|
{
|
||
|
$values = $eregs[1];
|
||
|
}
|
||
|
elseif (ereg("^service ->(.*)$", $ais_line, $eregs))
|
||
|
{
|
||
|
$values_read++;
|
||
|
$entity['service_id'] = trim($eregs[1]);
|
||
|
}
|
||
|
elseif (ereg("^entity ->(.*)$", $ais_line, $eregs))
|
||
|
{
|
||
|
$values_read++;
|
||
|
$entity['entity'] = trim($eregs[1]);
|
||
|
$entity_string = str_replace(array('(',')','0x'), '', $entity['entity']);
|
||
|
$entity_string = str_replace(':','_', $entity_string);
|
||
|
$entity['entity_string'] = $entity_string;
|
||
|
}
|
||
|
elseif (ereg("^NamedEntityName ->(.*)$", $ais_line, $eregs))
|
||
|
{
|
||
|
$values_read++;
|
||
|
$entity['entity_name'] = trim($eregs[1]);
|
||
|
}
|
||
|
elseif (ereg("^NamedEntityState ->(.*)$", $ais_line, $eregs))
|
||
|
{
|
||
|
$values_read++;
|
||
|
$entity['entity_state'] = trim($eregs[1]);
|
||
|
}
|
||
|
elseif (ereg("^NamedEntityParam1 ->(.*)$", $ais_line, $eregs))
|
||
|
{
|
||
|
$values_read++;
|
||
|
$entity['entity_param1'] = trim($eregs[1]);
|
||
|
}
|
||
|
elseif (ereg("^NamedEntityParam2 ->(.*)$", $ais_line, $eregs))
|
||
|
{
|
||
|
$values_read++;
|
||
|
$entity['entity_param2'] = trim($eregs[1]);
|
||
|
}
|
||
|
|
||
|
if (sizeof($entity) && ($values_read == $values) && ($values > 0))
|
||
|
{
|
||
|
$entity['service'] = $service_name;
|
||
|
$entity['service_code'] = md5($service_name);
|
||
|
$entity_data[] = $entity;
|
||
|
$entity = array();
|
||
|
$values = 0;
|
||
|
$values_read = 0;
|
||
|
}
|
||
|
|
||
|
}
|
||
|
}
|
||
|
|
||
|
return $entity_data;
|
||
|
}
|
||
|
|
||
|
function tool_ee_get_entities($data)
|
||
|
{
|
||
|
$entities = array();
|
||
|
|
||
|
reset($data);
|
||
|
foreach($data as $dkey => $dval)
|
||
|
{
|
||
|
$dkey_bits = explode('_', $dkey);
|
||
|
$dkey_nums = sizeof($dkey_bits);
|
||
|
|
||
|
if ($dkey_nums > 4)
|
||
|
{
|
||
|
$_entity_bit_4 = array_pop($dkey_bits);
|
||
|
$_entity_bit_3 = array_pop($dkey_bits);
|
||
|
$_entity_bit_2 = array_pop($dkey_bits);
|
||
|
$_entity_bit_1 = array_pop($dkey_bits);
|
||
|
|
||
|
$dkey_bits = array_reverse($dkey_bits);
|
||
|
$_entity_service = array_pop($dkey_bits);
|
||
|
$dkey_bits = array_reverse($dkey_bits);
|
||
|
|
||
|
$dkey_entity = $_entity_bit_1 .'_'. $_entity_bit_2 .'_'. $_entity_bit_3 .'_'. $_entity_bit_4;
|
||
|
$dkey_name = implode('_', $dkey_bits);
|
||
|
|
||
|
if (!isset($entities[$_entity_service .'_'. $dkey_entity]))
|
||
|
{
|
||
|
$entities[$_entity_service .'_'. $dkey_entity] = array();
|
||
|
}
|
||
|
|
||
|
$entities[$_entity_service .'_'. $dkey_entity][$dkey_name] = trim($dval);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
return $entities;
|
||
|
}
|
||
|
|
||
|
?>
|