我有一个平面文件。我想将其转换为csv。 平面文件格式是
"XXX" "H345" 2 "S" 1 "*" 0 01/03/2001 31/03/2002 "WORK IN PROGRESS" "" "" "" ""
此处字段以空格分隔。
我按照以下步骤进行转换
$file1="job.txt";
$file2="job.csv";
$content=file_get_contents($file1);
$arr=explode("\n",$content);
$f=fopen($file2,'w');
foreach($arr as $value)
{
$linearr=explode(' ',$value);
fputcsv($f, $linearr);
}
这里的问题是它还会爆炸"正在进行的工作"进入三个不同的领域。 怎么解决这个?如果我使用preg_match_all而不是如何为这种情况制作正则表达式??
答案 0 :(得分:0)
您的格式几乎是CSV格式,因此您可以使用str_getcsv
等
$string = '"XXX" "H345" 2 "S" 1 "*" 0 01/03/2001 31/03/2002 "WORK IN PROGRESS" "" "" "" ""';
// v -- there is space
print_r(str_getcsv($string, ' ')); // < -- you should use it
// ^ -- it's your custom delimiter
//Array
//(
// [0] => XXX
// [1] => H345
// [2] => 2
// [3] => S
// [4] => 1
// [5] => *
// [6] => 0
// [7] => 01/03/2001
// [8] => 31/03/2002
// [9] => WORK IN PROGRESS
// [10] =>
// [11] =>
// [12] =>
// [13] =>
//)