代码之家  ›  专栏  ›  技术社区  ›  CLiown

打开文本文件读取逗号分隔值

php
  •  1
  • CLiown  · 技术社区  · 15 年前

    我有以下代码:

    $pollids  = "pollids.txt";
    $contents = file_get_contents($pollids);
    list($pollid) = explode(',', $contents);
    echo $pollid;
    

    这将打开一个包含逗号分隔的文本列表的文本文件:value1、value2、value3等…

    但是它只是echo文件中的第一段文本。我怎样才能让它把它们全部循环/取出呢?

    其次,一旦我有了这些值(可能存储在一个数组中),我可以将它们输入到这段脚本中吗?

    $summize = new summize;
    $search = $summize->search('searchterm');
    $text = $search->results[0]->text;
    

    所以(‘searchterm’)被文件中的每个值替换?我又怀疑一个循环中有某种循环?

    5 回复  |  直到 8 年前
        1
  •  1
  •   Tatu Ulmanen    15 年前

    试试这个:

    $pollids  = "pollids.txt";
    $contents = file_get_contents($pollids);
    $pollfields = explode(',', $contents);
    
    echo $pollfields[0]; // Prints the value in first "cell"
    echo $pollfields[1]; // The second
    echo $pollfields[2]; // And so on
    

    或者,在一个循环中:

    foreach($pollfields as $field) {
        echo $field;
    }
    

    explode 创建由以下项分隔的字段数组 , 如此 $pollfields 是这些字段的数组,您可以将它们馈送到第二个片段中,如下所示:

    $summize = new summize;
    foreach($pollfields as $field) {
        $search = $summize->search($field);
    }
    $text = $search->results[0]->text;
    

    不知道怎么做 summize 好的,那应该是你需要的。

        2
  •  4
  •   Dominic Barnes    15 年前

    查看功能 fgetcsv

    这段代码也是来自文档页面的:(示例1读取并打印csv文件的全部内容)

    <?php
    $row = 1;
    if (($handle = fopen("test.csv", "r")) !== FALSE) {
        while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
            $num = count($data);
            echo "<p> $num fields in line $row: <br /></p>\n";
            $row++;
            for ($c=0; $c < $num; $c++) {
                echo $data[$c] . "<br />\n";
            }
        }
        fclose($handle);
    }
    ?>
    
        3
  •  1
  •   Mirko N.    15 年前

    使用 fgetcsv .

    编辑: explode 如果值包含引号中的逗号,则不起作用。

        4
  •  0
  •   streetparade    15 年前
    $pollids  = "pollids.txt";
    $contents = file_get_contents($pollids);
    
    $results = preg_split("/\s+|,/", $contents);
    $summize = new summize;
    
    for($i=0;$i<count($results);$i++)
    {
    echo $results[$i]:
    
    $search[$i] = $summize->search($results[$i]);
    $text[$i] = $search[$i]->results[$i]->text;
    }
    
    print_r($results);
    print_r($search);
    print_r($text);
    
        5
  •  0
  •   Jose Balboa    10 年前

    $fantasy5=explode(“,”,file_get_contents($_server['document_root']“/numbers.txt”));

    洗牌($fantasy5);

    对于($num=1;$num<=5;$num+=1)echo$fantasy5[$num]…“;”

    //输出为5个随机数,用破折号分隔

    =======================================

    文本文件的内容就是这样的数字:

    3,8,26,37,46, 8,30,35,38,41, 3,9,13,20,28, 10,20,21,23,36, 4,23,25,33,42, 1、16、26、45、46