繁体   English   中英

如何使用php从文本文件显示定义列表

[英]How to display definition list from text file using php

我在一个文本文件中有电影学分的定义列表。 我使用preg_split读取并通过以下行分隔文件:

$infoLines= preg_split( "/\\n|:/", file_get_contents(getPath($dir,"info.txt")));

我需要显示此文件的内容,每个偶数索引将具有<dt>标记,而每个奇数索引将具有<dd>标记。 我正在尝试通过使用foreach循环来做到这一点。

我找到了一个带有以下示例的教程站点

$movie = array( "title" => "Rear Window",
            "director" => "Alfred Hitchcock",
            "year" => 1954,
            "minutes" => 112 );

echo "<dl>";

foreach ( $movie as $key => $value ) {
echo "<dt>$key:</dt>";
echo "<dd>$value</dd>";
}

echo "</dl>";

哪些打印:

title:
    Rear Window
director:
    Alfred Hitchcock
year:
    1954
minutes:
    112

我试图将类似的内容合并到我的代码中,但是由于我正在从文件中读取并且未手动设置数组/键,因此无法正常工作。

function DisplayInfo($dir){
  $infoLines= preg_split( "/\n|:/", file_get_contents(getPath($dir, "info.txt")) );


  echo "<dl>";
  foreach ($infoLines as $key => $value) {
     echo"<dt>$key</dt>";
     echo"<dd>$value</dd>";
  }
  echo "</dl>";
}

我的输出是:

0
    STARRING
1
    Cary Elwes, Robin Wright, Andre the Giant, Mandy Patinkin
2
    DIRECTOR
3
    Rob Reiner

但是我需要:

STARRING
    Cary Elwes, Robin Wright, Andre the Giant, Mandy Patinkin

DIRECTOR
    Rob Reiner

我觉得自己快要死了,已经走到了尽头。 如何在PHP中正确显示定义列表?

有很多示例,例如我发布的示例,但没有一个示例处理txt文件中的信息。

根据您的代码,我假设文件中的一行看起来像

DIRECTOR:Rob Reiner

在这种情况下,在准备打印之前,请勿拆分行数据。

function DisplayInfo($dir){
  $infoLines= file(getPath($dir, "info.txt"));
  echo "<dl>";
  foreach ($infoLines as $line) {
     list($key, $value) = explode(':', $line, 2); 
     echo"<dt>$key</dt>";
     echo"<dd>$value</dd>";
  }
  echo "</dl>";
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM