【问题标题】:Warning: implode() [<a href='function.implode'>function.implode</a>]: Invalid arguments passed in C:\wamp\www\test.php on line 71警告:implode() [<a href='function.implode'>function.implode</a>]:第 71 行 C:\wamp\www\test.php 中传递的参数无效
【发布时间】:2013-01-23 21:51:58
【问题描述】:

我尝试使用以下代码将 csv 文件转换为 tsv。

在我的 csv 中,第一个单词没有任何价值。 当我运行代码时,它会正确生成 tsv 文件,但会出现上述错误。请帮忙

谢谢

$myfile = "file path"; 
function convert($filename) 
{
if(@$fh_in = fopen("{$filename}.csv","r")) 
{
$fh_out = fopen("{$filename}.tsv","a"); 

while(!feof($fh_in))
{
$line = array();
$line = fgetcsv($fh_in,1024);
fwrite($fh_out,implode("\t",$line)."\n"); 
}

fclose($fh_in);
fclose($fh_out);

}
else { 
echo "File doesn’t exist\n";
return false;
}
echo "Conversion completed!\n";
return true; 
}
convert($myfile);

【问题讨论】:

  • 可能会在空白行上这样做

标签: arguments warnings implode


【解决方案1】:

根据PHP Manual,内爆可以

string implode ( string $glue , array $pieces )
string implode ( array $pieces )

因此,在您的情况下,如果 $line 为空,那么它将使用第二个原型执行并将 \n 视为 $pieces,这是错误的。所以在调用 implode 之前检查 $line 中的值

【讨论】:

  • 感谢您的回复,但这是我的问题。我想将 CSV 转换为 tsv,并在那里我想创建一个程序来处理空值。 \n 也在括号外。所以在这里将 \n 视为一个值。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多