2012-07-24 134 views
0

我想解析xml到数组中使用objectsIntoArray()使用PHP,我得到错误Call to undefined function objectsIntoArray()调用未定义的函数objectsIntoArray()-PHP

请人帮助

+2

您还没有定义'objectsIntoArray()'。我相信你想要的是[此评论](http://www.php.net/manual/en/book.simplexml.php#97555)。 – 2012-07-24 06:54:08

+0

谢谢您Alvin Wong – phpwomen 2012-07-24 08:43:20

回答

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)); 
?> 
+0

在php.iniRevision中启用Simplexml支持 - \t $修订版:1.151.2.22.2.35.2.32 $和PHP版本是5.3.0.Please通知 – phpwomen 2012-07-24 07:00:57

+0

$ xmlString = file_get_contents($ fileName); $ xmlObject = simplexml_load_string($ xmlString); $ arrayXml = objectsIntoArray($ xmlObject); – phpwomen 2012-07-24 07:04:16

+0

这是一个对象成员。使用'$ arrayXml = $ xmlObject-> objectsIntoArray($ xmlObject); ' – 2012-07-24 07:07:10

1

objectsIntoArray()是不是一个标准的内置函数在PHP,所以如果你还没有自己写它,然后它会确实是不确定的。

如果您已经编写了它,那么也许您没有包含包含该函数的相应文件。

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

+0

感谢它的工作 – phpwomen 2012-07-24 08:41:59

相关问题