0

我正在尝试搜索字符串匹配然后拆分文件内容。经过一些试验和错误,我希望有人可以提供帮助。在 fgetcsv 之后,搜索字符串变得几乎毫无意义。理想情况下,我想找到每次出现的“约会”,并用逗号分隔内容。

if (($handle = fopen('file.csv', "r")) !== FALSE) {
while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {

    if(preg_match('/appointments/', $data, $matches, 0))
    {
        $split = preg_split("/,/", $data);
        print_r($split);

    }
}
fclose($handle);
}

打印语句不返回任何内容。

4

2 回答 2

0

如前所述,该文件包含 ASCII 字符,需要在处理前进行清理。

获取文件并循环后,剥离 ASCII 字符集的内容。

$stripAscii = preg_replace('/[^(\x20-\x7F)]*/','',$data);
$datePos = strpos($stripAscii,'Appointment:');
$data = substr($data, $datePos); 
$data = str_replace('Appointment:', ' ', $row2);

现在,返回“约会:”之后的所有字段。

于 2012-06-20T15:05:15.960 回答
0

用逗号分隔内容是什么意思?或者您想在每个“约会”之后添加一个逗号?

而不是fgetcsv,使用fread和替换“约会”与“约会”,使用str_replace

$filename = 'file.csv';
$handle = fopen($filename, "r");
$contents = fread($handle, filesize($filename));
fclose($handle);

$contents = str_replace('appointments', 'appointments, ', $contents);
echo $contents;
于 2012-06-11T21:04:25.223 回答