我有以下代码:
$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')被文件中的每个值替换?我再次怀疑循环中有某种循环?
答案 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