我正在尝试搜索字符串匹配,然后拆分文件内容。经过一些反复试验,我希望有人可以提供帮助。在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);
}
打印语句什么也没有回复。
答案 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);
现在,返回“约会:”之后的所有字段。