一尘不染

PHP-解析txt文件

php

我有一个.txt文件,其中包含以下详细信息:

ID^NAME^DESCRIPTION^IMAGES
123^test^Some text goes here^image_1.jpg,image_2.jpg
133^hello^some other test^image_3456.jpg,image_89.jpg

我想做的是解析此广告,使值以更易读的格式(如果可能)转换为数组。

谢谢


阅读 337

收藏
2020-05-29

共1个答案

一尘不染

您可以这样轻松地做到这一点

$txt_file    = file_get_contents('path/to/file.txt');
$rows        = explode("\n", $txt_file);
array_shift($rows);

foreach($rows as $row => $data)
{
    //get row data
    $row_data = explode('^', $data);

    $info[$row]['id']           = $row_data[0];
    $info[$row]['name']         = $row_data[1];
    $info[$row]['description']  = $row_data[2];
    $info[$row]['images']       = $row_data[3];

    //display data
    echo 'Row ' . $row . ' ID: ' . $info[$row]['id'] . '<br />';
    echo 'Row ' . $row . ' NAME: ' . $info[$row]['name'] . '<br />';
    echo 'Row ' . $row . ' DESCRIPTION: ' . $info[$row]['description'] . '<br />';
    echo 'Row ' . $row . ' IMAGES:<br />';

    //display images
    $row_images = explode(',', $info[$row]['images']);

    foreach($row_images as $row_image)
    {
        echo ' - ' . $row_image . '<br />';
    }

    echo '<br />';
}

首先,您可以使用函数打开文本文件file_get_contents(),然后使用函数在换行符上剪切字符串explode()。这样,您将获得一个数组,其中所有行都分开。然后使用该函数array_shift()可以删除第一行,因为它是标题。

获取行之后,您可以遍历数组并将所有信息放入名为的新数组中$info。从零行开始,您将能够获取每行的信息。因此,例如$info[0]['description']Some text goes here

如果您也想将图像放入数组中,也可以使用explode()。只需在第一行中使用它:$first_row_images = explode(',', $info[0]['images']);

2020-05-29