Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php4中simplexml_load_string()的替代方法_Php_Xml_Simplexml_Php4 - Fatal编程技术网

php4中simplexml_load_string()的替代方法

php4中simplexml_load_string()的替代方法,php,xml,simplexml,php4,Php,Xml,Simplexml,Php4,我在我的文件中使用这个函数simplexml\u load\u string(),它正在基于lucene进行搜索。 但它在php4中不起作用 请给我推荐一个类似于此的函数,这样我就不必对编码做太多更改 这是我的代码示例:- function handleResponse($data) { if ($data) { $xml = simplexml_load_string($data); $results

我在我的文件中使用这个函数simplexml\u load\u string(),它正在基于lucene进行搜索。 但它在php4中不起作用

请给我推荐一个类似于此的函数,这样我就不必对编码做太多更改

这是我的代码示例:-

function handleResponse($data) 
    {
        if ($data) 
        {
            $xml = simplexml_load_string($data);
            $results = array();
            foreach ($xml->result->doc as $story) 
            {
                $xmlarray = array();
                try
                {
                    foreach ($story as $item) 
                    {
                        $name = $item->attributes()->name;
                        $value = $item;
                        $xmlarray["$name"] = "$value";
                    }
                } 
                catch (Exception $e) 
                {
                    echo 'Problem handling XML array.'; 
                }
                if ($this->debug) echo "checking if ".$xmlarray['score']." > ".$this->min_score;
                if ($xmlarray['score'] > $this->min_score) $results[] = $xmlarray;
            }
            $results['response']=$xml->result->attributes()->numFound;
        }
        else
        {
            $results=false;
        }
        return $results;
    }
这里$data包含xml格式的数据,如

<?xml version="1.0" encoding="UTF-8"?>
<response>

<lst name="responseHeader">
 <int name="status">0</int>
 <int name="QTime">2</int>
 <lst name="params">
  <str name="explainOther"/>
  <str name="fl">*,score</str>

  <str name="indent">on</str>
  <str name="start">0</str>
  <str name="q">reliance</str>
  <str name="hl.fl"/>
  <str name="qt">dismax</str>
  <str name="wt">dismax</str>

  <str name="version">2.2</str>
  <str name="rows">10</str>
 </lst>
</lst>
<result name="response" numFound="5" start="0" maxScore="1.7840868">
 <doc>
  <float name="score">1.7840868</float>
  <str name="scheme_name">Reliance Diversified Power Sector Fund - Growth</str>

  <str name="scheme_nav">75.23</str>
 </doc>
 <doc>
  <float name="score">1.7840868</float>
  <str name="scheme_name">Reliance Diversified Power Sector Fund - Growth</str>
  <str name="scheme_nav">75.23</str>
 </doc>
</result>
</response>

0
2.
*,得分
在…上
0
依赖
沮丧
沮丧
2.2
10
1.7840868
信实多元化电力部门基金-增长
75.23
1.7840868
信实多元化电力部门基金-增长
75.23

请推荐一些类似于PHP4中的
simplexml\u load\u string()
的函数,这样就可以避免更改编码。

PHP4不支持异常。尝试删除
Try…catch
块。

编辑:另外(请注意下面的注释),SimpleXML扩展仅为PHP5。在PHP4中,您应该使用扩展,但这也意味着您将不得不大量更改代码。一个简单的链接提供了如何使用此扩展的链接。

PHP4不支持异常。尝试删除
Try…catch
块。

编辑:另外(请注意下面的注释),SimpleXML扩展仅为PHP5。在PHP4中,您应该使用扩展,但这也意味着您将不得不大量更改代码。一个简单的链接提供了关于如何使用此扩展的链接。

当人们告诉我更新我的环境而不是仅仅回答我的问题时,我自己也很讨厌,但是没有办法切换到PHP5吗?PHP4现在已经非常非常过时了,在我看来,它已经不适合新项目了。PHP5带来了原生XML支持,而PHP4解决方案都非常慢

我自己也讨厌别人告诉我更新我的环境而不是仅仅回答我的问题,但是没有办法切换到PHP5吗?PHP4现在已经非常非常过时了,在我看来,它已经不适合新项目了。PHP5带来了原生XML支持,而PHP4解决方案都非常慢

我自己还没有使用过这个类,但是phpClasses.org为PHP4提供了一个simpleXML实现,看起来很不错:


我自己没有使用过这个类,但是phpClasses.org为PHP4提供了一个simpleXML实现,看起来很不错:


我认为他指的是PHP4中不固有的simplexml函数。删除此函数对我没有帮助,因为此函数不起作用:-(我认为他指的是PHP4中不固有的simplexml函数。删除此函数对我没有帮助,因为此函数不起作用:-(我同意,我们将迁移到新的版本,但这需要一些时间,我的这项工作现在只需要现场进行。这就是为什么我要问这个问题。我无法想象这会浪费多少钱。运行PHP4而不是PHP5.3会浪费大量服务器资源,加上转换完全有效的服务器所花费的时间为非常旧版本的PHP编写代码,并修复您将遇到的错误,因为您的PHP4解决方案无法实现SimpleXML的迭代器,以及由于PHP4的按值范式而不时出现的神秘错误。我希望您按小时计费。我同意,我们将迁移到新版本,但这需要花费大量时间我的一些时间和这项工作现在只需要上线。这就是为什么我问这个问题。我无法想象这会浪费多少钱。运行PHP4而不是PHP5.3会浪费大量的服务器资源,再加上将完全有效的代码转换为非常非常旧的PHP版本所花费的时间,再加上修复错误您将遇到这样的问题,因为您的PHP4解决方案无法实现SimpleXML的迭代器,并且由于PHP4的按值范式,会不时出现神秘的bug。我希望您能按时计费。