如何标记字符串并将其解析为数组并读取它们

时间:2019-01-08 22:51:47

标签: php arrays

因此,我希望我的页面读取txt文件,然后对其进行标记化并创建类似数组的变量。

例如:

我的txt文件:

Column1/Column2/Column3
A:K:Z
B:U:D

然后我想像$variable['0']['Column1']那样阅读它;

有什么办法吗?

<?php
    $handle = @fopen("info.txt", "r");
    if ($handle) {
        while (($buffer = fgets($handle, 4096)) !== false) {

            $delimiters = ":";

            $token = strtok($buffer, $delimiters);
            $result = [];
            $row = [];
            $columns = ['rede', 'servidor', 'data', 'hora', 'usuarios', 'servidores'];
            while ($token){
                $row[$columns[count($row)]] = $token;
                if (count($row) == 6) { // write record
                    $result[] = $row;
                    $row = [];
                }
                $token = str_replace('\r', '', strtok($delimiters));
            }
            print_r($result);
        }
        if (!feof($handle)) {
            echo "Error: unexpected fgets() fail\n";
        }
        fclose($handle);
    }
?>

1 个答案:

答案 0 :(得分:1)

我不会使用strtok。我认为将:用作fgetcsv中的分隔符会更容易。像这样:

if ($handle) {
    $columns = ['rede', 'servidor', 'data', 'hora', 'usuarios', 'servidores'];
    while (($row = fgetcsv($handle, 0, ':')) !== false) {
        if (isset($row[5])) {
            $result[] = array_combine($columns, $row);
        }
    }
}