从文本文件中分解每一行

时间:2015-10-22 13:01:51

标签: php arrays file text explode

我有些日子面临严重的问题。尝试从 something.txt 文件中分解每一行并创建一个数组。但阵列结构不像我想要的那样。我的代码如下:

    for ( $i=0; $i<count($_FILES['data']['name']['Question']['uploadfiles']); $i++) {
        foreach(file($_FILES['data']['name']['Question']['uploadfiles'][$i]) as $line) {
            $LineData[] = explode("\n",$line);
        }
    }

某些文件会丢失正确的数组结构。就像

    Array
    (
        [0] => Array
            (
                [1] => 
    A. Hemophilia A
    B. Hemophilia B
                [2] => C. Von Willebrand disease
    D. Idiopathic thrombocytopenic purpura
            )
     )

但我想要这样的数组结构:

Array
(
    [0] => Array
        (
            [1] => A. Hemophilia A
            [2] => B. Hemophilia B
            [3] => C. Von Willebrand disease
            [4] => D. Idiopathic thrombocytopenic purpura
        )
 )

3 个答案:

答案 0 :(得分:2)

尝试使用回车"\r"代替换行符"\n"

根据this文章,Mac在这方面与Windows和Linux不同。

答案 1 :(得分:0)

将以下内容保存在PHP文件中,然后在本地服务器中运行并进行测试

<?php

    if(isset($_POST['submit'])){
        $contents = file_get_contents($_FILES['file']['tmp_name']);
        $filearray = explode("\n", $contents);
        echo '<pre>'; print_r($filearray);
    }

?>

<!DOCTYPE html>
<html>
<body>
    <form enctype="multipart/form-data" method="post" name="uploadForm">
        <input type="file" name="file"  />
        <input type="submit" name="submit" value="Add" />
    </form>
</body>
</html>

答案 2 :(得分:0)

file函数已经分成行。没有理由explode除非你想分开每一行

在您的情况下,file来电就足够了,甚至不需要foreach

$lineData = file($_FILES['data']['name']['Question']['uploadfiles'][$i]);