【问题标题】:opening file with php not working用php打开文件不起作用
【发布时间】:2012-01-03 19:58:14
【问题描述】:

为什么会这样:

$test='tester.txt';
$bigarr=str_getcsv($test,',');
print_r($bigarr);

texter.txt 包含:one,two,three,four

不行吗?

编辑:它只输出“tester.txt”,并没有像它应该的那样将单个元素放入一个数组中......

【问题讨论】:

  • 请解释您期望发生什么以及实际发生什么。包括您重现错误的步骤以及您收到的任何错误消息。
  • str_getcsv() 只接受一串数据,你需要先用fopen() 打开文件,然后读取它的内容。检查函数定义:php.net/manual/en/function.str-getcsv.php,您可能正在寻找:php.net/manual/en/function.fgetcsv.php,而是检查示例。
  • texter.txt 中的行是否有合适的行分隔符?
  • 在提问之前你应该做更多的研究工作,如果我理解正确的话,这就是问题所在。
  • 没有人说你愚蠢,但你至少应该在问它为什么不起作用之前查找函数定义。还尝试包含更多您对函数的期望等。

标签: php


【解决方案1】:

您尚未打开该文件。 str_getcsv() 从字符串而非文件中检索 CSV 数据。请改用fgetcsv()

$test='tester.txt';
$handle = fopen($test, 'r');
$bigarr = fgetcsv($handle);
print_r($bigarr);

【讨论】:

  • 很好,不知道有这样的功能。这是一个比我更好的答案。 +1!
  • 这也行不通,因为 fgetscsv 需要一个文件句柄,即:打开的东西是:fopen('file', 'r'); 或类似的东西。
  • 正确的 Anton,这对我也不起作用...我会尝试使用 fopen。
【解决方案2】:

正如您在 the documentation page 上看到的那样,str_getcsv 采用 CSV 字符串。您正在向它传递一个文件名。您必须首先读取该文件的内容,并将其与函数一起使用。你可以使用file_get_contents

$bigarr = str_getcsv(file_get_contents($test), ',');

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-10-25
    • 2018-08-16
    • 1970-01-01
    • 2019-07-19
    • 1970-01-01
    • 2015-11-01
    • 1970-01-01
    相关资源
    最近更新 更多