爆炸txt文件PHP

时间:2015-06-28 02:35:24

标签: php arrays file

我遇到了在PHP中爆炸txt文件的问题。这是我想要做的一个例子:

Product N°3456788765
price: 0.09
name: carambar


Product N°3456789
price: 9
name: bread

所以基本上,我想有一个像:

这样的数组
array
    [0] => 
           [0] => Product N°3456788765
           [1] => price: 0.09
           [2] => name: carambar
    [] => 
           [0] => Product N°3456789
           [1] => price: 9
           [2] => name: bread

在其他问题中,他们使用了爆炸功能。不幸的是,我不知道该对该函数说些什么,因为这里的分隔符是空行...

我尝试进行一些研究,因为当我在空白行上使用strlen()时,它会显示2个字符。所以在使用ord()函数后,我看到这两个字符在Ascii模式下分别为13和10,但如果我尝试了

$string = chr(13) . chr(10);
strcmp($string,$blankline); 

它只是不起作用。我本来喜欢在我的爆炸分隔符中使用这个$string ...

谢谢大家的建议,经过多年寻找答案后先在这里发帖:)

3 个答案:

答案 0 :(得分:4)

尝试这样的事情:

Array
(
    [0] => Array
        (
            [0] => Product N°3456788765
            [1] => price: 0.09
            [2] => name: carambar
        )

    [1] => Array
        (
            [0] => Product N°3456789
            [1] => price: 9
            [2] => name: bread
        )

)

给你:

{{1}}

答案 1 :(得分:2)

请勿将其复杂化,只需将file()array_chunk()结合使用。

<?php

    $lines = file("yourTextFile.txt", FILE_SKIP_EMPTY_LINES | FILE_IGNORE_NEW_LINES);
    $chunked = array_chunk($lines, 3);
    print_r($chunked);

?>

答案 2 :(得分:0)

结果在这里:

    $text = file_get_contents('file.txt');
    $temp = explode(chr(13) . chr(10) . chr(13) . chr(10),$text);
    $hands = array();
    foreach($temp as $hand){
        $hand = explode(chr(13) . chr(10),$hand);
        $hand = array_filter($hand);
        array_push($hands,$hand);
        $hand = array_filter($hand);
    }
    dd($hands);

我有两个chr(13)。 chr(10)当产品改变时,一个是当它改变线时。所以它现在正在工作!