所以我有很多 solr 实例在运行,为了提交搜索,我只是将一个快速网站放在一起。在发出请求 URL 后,在 php 中我使用以下命令从 solr 获取 XML 响应:
$solr_return= file_get_contents($full_request_URL);
现在响应不是简单的 xml 格式,如果您明白我的意思,它具有 solr-ness。我希望能够解析返回的 xml 并将它们显示在 html 表格的行中。
我一直在网上寻找,有许多不同的想法让我觉得我可能完全不在乎,这不是做这件事的方法。如果你是我,你会怎么做?
$solr_return
中的 xml 如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<response>
<lst name="responseHeader">
<int name="status">0</int>
<int name="QTime">95</int>
<lst name="params">
<str name="indent">true</str>
<str name="rows">10</str>
<str name="start">0</str>
<str name="q">*:*</str>
<str name="shards">some shards here</str>
</lst>
</lst>
<result name="response" numFound="2403043" start="0">
<doc>
<str name="1">test1</str>
<str name="2">test2</str>
<str name="3">test3</str>
</doc>
<doc>
<str name="1">test1</str>
<str name="2">test2</str>
<str name="3">test3</str>
</doc>
</result>
</response>
对于这个例子,我想显示一个包含三列 1、2 和 3 以及两行 test1、test2 和 test3 的表格。
提前感谢您的帮助。
最佳答案
最简单的做法是将 &wt=php
添加到 Solr 请求 URL,然后运行 eval()
并将结果分配给一个数组(假设您相信您的 Solr 服务器不会发回恶意代码)。然后 Solr 结果将只是一个常规的 PHP 数组,您可以根据需要对其进行操作。
或者你可以在末尾添加&wt=json
,获取JSON格式的结果,然后在PHP中对返回的字符串运行json_decode()
将其转换为一个 PHP 数组。
关于php - 在 php 中解析 solr 响应并将它们显示在 html 表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11660819/