Php 查找匹配项后拆分文本文件

Php 查找匹配项后拆分文本文件,php,parsing,Php,Parsing,我正在尝试搜索字符串匹配,然后拆分文件内容。经过一些尝试和错误,我希望有人能伸出援助之手。在fgetcsv之后,搜索字符串几乎变得毫无意义。理想情况下,我希望找到每次出现的“约会”,并用逗号分割内容 if (($handle = fopen('file.csv', "r")) !== FALSE) { while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) { if(preg_match('/appointments/', $da

我正在尝试搜索字符串匹配,然后拆分文件内容。经过一些尝试和错误,我希望有人能伸出援助之手。在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);
}

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

用逗号分割内容是什么意思?还是要在每次“约会”后添加逗号

不要使用
fgetcsv
,而是使用
fread
将“约会”替换为“约会”,使用
stru-replace

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

$contents = str_replace('appointments', 'appointments, ', $contents);
echo $contents;

如前所述,文件具有ASCII字符,需要在处理前清除这些字符

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

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

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

$data
将是一个数组,而不是字符串。因此,您需要在数组的每个元素上循环,或者只访问您需要的元素,然后使用该元素。该文件以逗号分隔,我需要搜索“约会”字段,并获取后面的列。在对“约会:”和foreach使用preg_split之后,我查看了源代码,发现该文件有特殊的字符集。