-1

我正在尝试在 php 中加载一个 .txt 文件,然后将数据转换为数组以用于标记照片。具体来说,我想要一个包含许多照片标题和说明的文本文件,然后我可以动态处理这些文件来标记我的照片。这是我到目前为止所拥有的,它工作得很好,但没有创建我理解的数组。当它返回“$arrM[1]”时,它返回的是我的文本文件每一行中的第一项,而不仅仅是第一项。

    $f = fopen("set_data.txt", "r");
    while (!feof($f)) { 
        $arrM = explode(",",fgets($f)); 
        echo $arrM[1]; 
    }
    fclose($f);

我的文本文件如下所示:

title a, caption a
title b, caption b
title c, caption c

所以,我的问题是:

  1. 如何格式化我的 txt 文件,以便项目可以唯一寻址?我不明白换行符和逗号(或任何其他可以充当分隔符的符号)之间的区别。网上没有任何东西可以帮助说明这一点。

  2. 如何将 txt 文件分解为数组?理想情况下,我希望能够基于变量(例如“$arrM[i]”)单独检索“标题 a”或“标题 b”,但它不是以这种方式创建数组。我需要能够解决数组条目的编号以及数组的部分。因此,用简单的语言,我需要能够将其称为“数组条目第二个,给我看第二个项目”。

有任何想法吗?

4

1 回答 1

2

它返回所有标题,因为您在 while 循环中有回声。

你可以这样做:

 $data = array();
 $f = fopen("set_data.txt", "r");
 while (!feof($f)) { 
      $data[] = explode(",",fgets($f));     
 }
 fclose($f);
 var_dump($data);

换行符是创建新行的特殊字符。这可以是

  • \n换行符 (Unix)
  • \r回车符
  • \n\r换行+回车符

为了帮助解决混乱,有 PHP_EOL(php 常量)。

定界符是从字符串创建子字符串时使用的限制字符。

于 2013-05-27T17:42:32.067 回答