找到匹配后拆分文本文件

时间:2012-06-11 20:56:29

标签: php parsing

我正在尝试搜索字符串匹配,然后拆分文件内容。经过一些反复试验,我希望有人可以提供帮助。在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);
}

打印语句什么也没有回复。

2 个答案:

答案 0 :(得分: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;

答案 1 :(得分:0)

如上所述,该文件具有ASCII字符,需要在处理之前进行清理。

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

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

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