1

因此,我需要制作一个读取 .csv 文件的脚本,使用正则表达式查找名称:xxxxx,并将正则表达式结果添加到 txt 文件中。

我的 PHP 脚本:

<?PHP
$array=array();
$file_handle = fopen("CONTACTOS.CSV", "r");
$fp=fopen("teste.txt", "w");
$pattern = '/Nome.+\s+/';
while (!feof($file_handle) ) {
    $i=0;
    $line_of_text = fgetcsv($file_handle, 1024);
    $iend=count($line_of_text);
            while($i<=$iend){
                    if (isset($line_of_text[$i])){
                            //$array[]=$line_of_text[$i];
                            array_push($array, $line_of_text[$i]);
                            //fputs($fp, $line_of_text[$i]);
                            //echo($array[$i] . "\n");
                            $i++;
                    }
                    else{
                            $i++;
                        }
            }
}
//print_r($array);
$fl_array = preg_grep("/Nome.+\s+/", $array);
print_r($fl_array);
// ________________________________________
$e=1;
end($fl_array);
$flend=key($fl_array);
reset($fl_array);
$arrayF = array_values($fl_array);
while($e<=$flend){
    if (array_key_exists($e, $arrayF) == true) { 
            //print_r($e . "\n");
            puts($fp, $arrayF[$e]);
            $e++;
        }
    else{
        $e++;
        }
    }
// ________________________________________
//print_r($fl_array);
$fp = fopen('CONTACTOS_NOVO.csv', 'w');
       //fputcsv($fp, $array);
fclose($fp);
fclose($file_handle);

?>

CSV 文件的一部分:

De: bpsnun@m2g-24-59.spvservers.net [mailto:bpsnun@m2g-24-59.spvservers.net] Em nome de Site - BPS Finance
Enviada: quinta-feira, 18 de Março de 2010 10:57
Para: form@bpsfinance.com
Assunto: Formulário - BPS Finance



Formulário nº: 002136

Data: 18/03/2010 - 11:47:58

Faça JÁ o seu Pedido



Montante Pretendido   



Montante de Crédito Pretendido*:   4000 €

1.  O Preenchimento desta proposta não obriga o cliente à sua aceitação.
2.  Caso algum dos proponentes e/ou seus cônjuges tiverem Incidentes Bancários, a proposta será imediatamente RECUSADA.
3.  Não existem quaisquer custos associados à emissão da Pré-Aprovação.
4.  PRAZO: De 12 a 96 meses. Apresentaremos todas as prestações possíveis para o seu crédito. E você Escolhe!

1º Titular   



Nome*:   MARIA JOAO MOTA

我只想在我的 $fp .txt 文件中保存Nome*: XXXX XXXXXXX XXXX

我的代码有什么问题?我使用此代码得到的错误是:

Fatal Error: Call to undefined function puts() in C:\XXX\teste.php on line 35

你能帮我重新制作代码以使其工作吗?

更新! 好的,现在没有错误,但是 preg_grep 没有磨损,我的 txt 与 .csv 文件具有相同的内容,而且不仅是名称*:我怎样才能使我的 preg_grep 工作?

4

1 回答 1

1

while($e<=$flend){
    if (array_key_exists($e, $arrayF) == true) { 

您正在检查数组键,$e=1;但找到的Nome行存储在$arrayF[0].

于 2014-07-04T13:54:08.523 回答