0

我正在尝试objectsIntoArray()使用 PHP 将 xml 解析为数组,但出现错误Call to undefined function objectsIntoArray()

请任何人帮助

4

2 回答 2

2

SimpleXML Extension 丢失、未安装,或者您的 PHP 版本或 SimpleXML 版本错误。

  1. 检查phpinfo()并检查http://www.php.net/manual/en/simplexml.installation.php
  2. 邮政编码

所以objectsIntoArray()它只是一个手工制作的功能。它不是内置在 php 中的,因此您必须手动包含它。

<?php 

    function objectsIntoArray($arrObjData, $arrSkipIndices = array()){
        $arrData = array();
        if (is_object($arrObjData)) 
            $arrObjData = get_object_vars($arrObjData);

        if (is_array($arrObjData)) 
            foreach ($arrObjData as $index => $value) {
                if(is_object($value) || is_array($value)) 
                    $value = objectsIntoArray($value, $arrSkipIndices); 

                if(in_array($index, $arrSkipIndices)) 
                     continue;

                $arrData[$index] = $value;
            }

        return $arrData;
    }

    $xmlString = "
        <html>
            <head>
                <link blabla='whargarbl' />
            </head>
        </html>
    "; 
    $xmlObject = simplexml_load_string($xmlString); 
    $arrayXml = objectsIntoArray($xmlObject);
    die(var_dump($arrayXml));
?>
于 2012-07-24T06:55:08.390 回答
1

objectsIntoArray()不是 PHP 中的标准内置函数,因此如果您没有自己编写它,那么它确实是未定义的。

如果您已经编写了它,那么您可能没有包含包含该函数的适当文件。

我注意到有人在 SimpleXML 类的 PHP 手册页的注释中发布了一个同名函数——请参阅http://php.net/manual/en/book.simplexml.php并搜索objectsIntoArray. 如果这是您正在寻找的功能,您可以直接从这里复制+粘贴并使用它。

于 2012-07-24T06:54:16.960 回答