php explode() 将文本文件中的所有值存储到索引 [0]

php explode() storing all values from test filt to index [0]

我是一名学生,目前正在学习 PHP 并且很难让 explode() 函数按照我想要的方式工作。

以下文本文件 "vacations.txt" 包含:

"54321", "Big Island Hawaii", "2999.00", "Best beaches big volcano"
"87654", "Cruise Caribbean", "3500.00", "Ocean view with balcony Cancun Jamaica etc."
"09876", "Rome and Madrid", "3999.00", "I see Italy I see Spain"
"32198", "Ski Tahoe", "1200.00", "Ski all day Gamble all night"

我试图将其放入一个由逗号分隔的数组中。使用 print_r(),我可以看到它都进入了数组的第一个索引。 这是我的代码:

function displaySpecials() {
    $prodString = include("vacation.txt");
    $vacArray = explode(',', $prodString ); 
        print_r($vacArray);
}

这是输出:

"54321", "Big Island Hawaii", "2999.00", "Best beaches big volcano" "87654", "Cruise Caribbean", "3500.00", "Ocean view with balcony Cancun Jamaica etc." "09876", "Rome and Madrid", "3999.00", "I see Italy I see Spain" "32198", "Ski Tahoe", "1200.00", "Ski all day Gamble all night"Array ( [0] => 1 )

我已经搜索并阅读了我能找到的关于 explode() 的所有内容,但我无法弄清楚为什么会这样。我的最终目标是在 table 中输出一个具有 4 行和 4 列的多维数组,以显示文本文件中的 16 个值。

非常感谢所有帮助。提前致谢!

尝试用 file_get_contents("vacation.txt") 替换 include("vacation.txt")

include

The include statement includes and evaluates the specified file.

file_get contents

Reads entire file into a string

您的代码应如下所示:

function displaySpecials() {
    $prodString = file_get_contents("vacation.txt");
    $vacArray = explode(',', $prodString ); 
        print_r($vacArray);
}

因为这基本上是一个 csv 文件,我建议使用 fgetcsv,像这样:

if (($h = fopen('vacation.txt', 'r')) !== false) {
    while (($data = fgetcsv($h, 1000, ',')) !== false) {
        // Fetch the data here
    }
}

您也可以选择使用 str_getcsv:

$data = array_map('str_getcsv', file('vacation.txt'));

The include statement includes and evaluates the specified file.

include 将评估其中的任何内容,基本上包括其他 php 脚本。

您需要获取其内容。

下面我使用 file 逐行获取文件内容。

function displaySpecials() {
    $lines = file("vacation.txt"); // will return lines in array
    foreach($lines as $line){ // loop for each line
        $vacArray[] = explode(",", $line); // insert resulting array to last index of $varArray
    } 
    print_r($vacArray);
    return $vacArray;
}

此外,该文件看起来很正常 .csv 您可以使用 fgetcsv。查看官方docs中的示例。