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

时间:2010-01-03 16:28:45

标签: php

我有以下代码:

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

这将打开一个文本文件,其中包含逗号分隔的文本列表:value1,value2,value3等...

然而它只回显文件中的第一段文字。我怎样才能让它循环/取出它们?

其次,一旦我拥有这些值,也许存储在数组中,我可以将它们输入到这段脚本中吗?

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

这样('searchterm')被文件中的每个值替换?我再次怀疑循环中有某种循环?

5 个答案:

答案 0 :(得分:4)

查看函数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);
}
?>

答案 1 :(得分:1)

试试这个:

$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 :(得分:1)

使用fgetcsv

编辑:explode如果值包含例如{},则无效用引号括起来的逗号。

答案 3 :(得分:0)

$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);

答案 4 :(得分:0)

$ fantasy5 = explode(“,”,file_get_contents($ _ SERVER ['DOCUMENT_ROOT']。“/ numbers.txt”));

洗牌($ fantasy5);

for($ num = 1; $ num&lt; = 5; $ num + = 1){echo $ fantasy5 [$ num]。“ - ”;}

//输出将是由短划线

分隔的五个随机数

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

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

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