如何逐行读取插入到具有特殊条件的数组中


how can I read line by line insert into an array with special condition?

<b title="FunctionalCI">ApplicationSolution</b>::42<br/>
<ul class="treeview">
<li>Name = Sep11</li>
<li>Description = <div ></div></li>
<li>Organization = <a href="http://localhost/itop/web/pages/UI.php?operation=details&class=Organization&id=4&c[menu]=ConfigManagementOverview" title="Organization::4">test</a></li>
<li>Organization name =test</li>
<li>Business criticity = <span title="high">high</span></li>
<li>Move to production date = 2014-12-31</li>
<li>Contacts = </li>
<li>CIs = <a href="http://localhost/itop/web/pages/UI.php?operation=details&class=FunctionalCI&id=49&c[menu]=ConfigManagementOverview" title="Functional CI::49">Sep Console04</a>, 42 49, Sep11, Sep Console04<br/><a href="http://localhost/itop/web/pages/UI.php?operation=details&class=FunctionalCI&id=50&c[menu]=ConfigManagementOverview" title="Functional CI::50">Sep Console05</a>, 42 50, Sep11, Sep Console05<br/><a href="http://localhost/itop/web/pages/UI.php?operation=details&class=FunctionalCI&id=53&c[menu]=ConfigManagementOverview" title="Functional CI::53">Sep Engine CO04</a>, 42 53, Sep11, Sep Engine CO04</li>
<li>Business processes = <a href="http://localhost/itop/web/pages/UI.php?operation=details&class=BusinessProcess&id=44&c[menu]=ConfigManagementOverview" title="Business Process::44">Business Process</a>, 44 42, Business Process, Sep11</li>
<li>CI Type = Application Solution</li>
<li>Friendly name = Sep11</li>
</ul>
<b title="FunctionalCI">WebApplication</b>::49<br/>
<ul class="treeview">
<li>Name = Sep Console04</li>
<li>Organization = <a href="http://localhost/itop/web/pages/UI.php?operation=details&class=Organization&id=4&c[menu]=ConfigManagementOverview" title="Organization::4">test</a></li>
<li>Organization name = test</li>
<li>Business criticity = <span title="low">low</span></li>
<li>Move to production date = 2014-12-26</li>
<li>Contacts = </li>
<li>Application solutions = <a href="http://localhost/itop/web/pages/UI.php?operation=details&class=ApplicationSolution&id=42&c[menu]=ConfigManagementOverview" title="Application Solution::42">Sep11</a>, 42 49, Sep11, Sep Console04</li>
<li>CI Type = Web Application</li>
<li>Friendly name = Sep Console04</li>
</ul>

大家好,我是php编程的新手。 如您所见,我有test.txt文件。我想在php中逐行读取测试.txt文件,然后将每一行保存在二维数组中(如data[i][j](。行索引 I 应该更改only when $line =="</ul>"

我编写了如下代码来读取测试.txt文件:

$file = fopen("result.xml", "r");
if ($file)
{
while (!feof($file))
        {
            $line = fgets($file);
.....
}
}

我对如何控制row index i when "$line == "</ul>" 感到困惑 我真的很感谢你提前的帮助!多谢!

安华

在 while(!feof($file(( 之前,您需要定义 $data 数组并$i。

$data = array();
$i=0;
$data[$i] = array();

这一切都可以在一行中完成,但在这里分为三行以更有意义。

现在,在阅读该行后,您可以查看它是否为 。我会修剪它 - 以防万一它有空格。如果是 ,则递增$i并创建一个新数组。

if(trim($line) == '</ul>')
{
    $i++;
    $data[$i] = array();
}

同样,这可以是一行,但为了清楚起见,这里将其分开。

现在您知道$i,因此请添加新行以$data[$i]...

$data[$i][] = $line;

最后,您可以print_r($data(以查看它是否是您想要的。