加载一个txt文件,然后将其转换为php中的数组

时间:2013-05-27 17:37:39

标签: php arrays

我正在尝试在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文件分解为数组?理想情况下,我希望能够单独检索“标题a”或“标题b”并基于变量(例如“$ arrM [i]”),但它不是以这种方式创建数组。我需要能够解决数组条目的数量以及数组的部分。因此,在简单的语言中,我需要能够将其称为“数组条目号2,向我显示第二项”。

    < / LI>

    有什么想法吗?

1 个答案:

答案 0 :(得分: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常量)。

分隔符是从字符串创建子字符串时使用的限制字符。