Browse Source

Quick fix to PR #2682

pull/2699/head
fabrixxm 5 years ago
parent
commit
87fb0b7b26
2 changed files with 18 additions and 12 deletions
  1. +3
    -2
      include/api.php
  2. +15
    -10
      include/xml.php

+ 3
- 2
include/api.php View File

@ -768,6 +768,7 @@
}
$data3 = array($root_element => $data2);
$ret = xml::from_array($data3, $xml, false, $namespaces);
return $ret;
}
@ -2377,9 +2378,9 @@
$res = array();
$uri = $item['uri']."-l";
foreach($activities as $k => $v) {
$res[$k] = ( x($v,$uri) ? array_map("api_contactlink_to_array", $v[$uri]) : array() );
$res[$k] = (x($v,$uri)?count($v[$uri]):0);
#$res[$k] = ( x($v,$uri) ? array_map("api_contactlink_to_array", $v[$uri]) : array() );
}
return $res;
}


+ 15
- 10
include/xml.php View File

@ -51,8 +51,13 @@ class xml {
$element = $xml;
if (is_integer($key)) {
if (isset($element))
$element[0] = $value;
if (isset($element)) {
if (is_scalar($value)) {
$element[0] = $value;
} else {
/// @todo: handle nested array values
}
}
continue;
}
@ -145,11 +150,11 @@ class xml {
/**
* @brief Convert an XML document to a normalised, case-corrected array
* used by webfinger
*
*
* @param object $xml_element The XML document
* @param integer $recursion_depth recursion counter for internal use - default 0
* @param integer $recursion_depth recursion counter for internal use - default 0
* internal use, recursion counter
*
*
* @return array | sring The array from the xml element or the string
*/
public static function element_to_array($xml_element, &$recursion_depth=0) {
@ -195,23 +200,23 @@ class xml {
/**
* @brief Convert the given XML text to an array in the XML structure.
*
*
* xml::to_array() will convert the given XML text to an array in the XML structure.
* Link: http://www.bin-co.com/php/scripts/xml2array/
* Portions significantly re-written by mike@macgirvin.com for Friendica
* (namespaces, lowercase tags, get_attribute default changed, more...)
*
*
* Examples: $array = xml::to_array(file_get_contents('feed.xml'));
* $array = xml::to_array(file_get_contents('feed.xml', true, 1, 'attribute'));
*
*
* @param object $contents The XML text
* @param boolean $namespaces True or false include namespace information
* in the returned array as array elements.
* @param integer $get_attributes 1 or 0. If this is 1 the function will get the attributes as well as the tag values -
* @param integer $get_attributes 1 or 0. If this is 1 the function will get the attributes as well as the tag values -
* this results in a different array structure in the return value.
* @param string $priority Can be 'tag' or 'attribute'. This will change the way the resulting
* array sturcture. For 'tag', the tags are given more importance.
*
*
* @return array The parsed XML in an array form. Use print_r() to see the resulting array structure.
*/
public static function to_array($contents, $namespaces = true, $get_attributes=1, $priority = 'attribute') {


Loading…
Cancel
Save