PHP 更新 CSV - fput()
PHP Update CSV - fput()
我想打开一个包含以下条目的 csv 文件:
Firma,Anrede,Titel,Vorname,Nachname,Strasse,PLZ,Telefon,Fax,Email,Nachricht,CopyFlag,Importiert,Importdate,Importtime
Testfirma1,Herr,Dr.,Vorname1,Name1,Strasse1,11111,12345567,123456,1@keine.de,nachricht1,1,,24.03.2016,22:00:00
Testfirma2,Herr,Dr.,Vorname2,Name2,Strasse2,22222,22345567,223456,2@keine.de,nachricht2,1,,25.03.2016,22:00:00
Testfirma3,Herr,Dr.,Vorname3,Name3,Strasse3,33333,32345567,323456,3@keine.de,nachricht3,1,,25.03.2016,22:00:00
Testfirma4,Herr,Dr.,Vorname4,Name4,Strasse4,44444,42345567,423456,4@keine.de,nachricht4,1,,25.03.2016,22:00:00
然后我想检查第 12 列 (Importiert
) 中是否没有任何内容,并检查 importtime
是否小于 systemtime
。如果两者都是真的,我想将此数据发送给 curl 做一些 post。完成后,我想在第 12 列中写一个时间戳。我用这个例子试过了:
$fp = fopen("Testformular.csv", "r+");
$line = 0;
while ( $row = fgetcsv($fp) ) {
if($line === 0){
$line++;
continue;};
$actual = date("d.m.Y - H:i:s", time());
$csvtime= date("d.m.Y - H:i:s", strtotime($row[13]. $row[14]));
if (empty($row[12])){
if ($actual > $csvtime){
$output = "";
$output .= 'tx_btsimplecontact_pi1[name]=' . urlencode("");
$output .= '&tx_btsimplecontact_pi1[firma]=' . urlencode($row[0]);
$output .= '&tx_btsimplecontact_pi1[sex]=' . urlencode($row[1]);
$output .= '&tx_btsimplecontact_pi1[titel]=' . urlencode($row[2]);
$output .= '&tx_btsimplecontact_pi1[vorname]=' . urlencode($row[3]);
$output .= '&tx_btsimplecontact_pi1[nachname]=' . urlencode($row[4]);
$output .= '&tx_btsimplecontact_pi1[strasse]=' . urlencode($row[5]);
$output .= '&tx_btsimplecontact_pi1[plz_ort]=' . urlencode($row[6]);
$output .= '&tx_btsimplecontact_pi1[telefon]=' . urlencode($row[7]);
$output .= '&tx_btsimplecontact_pi1[fax]=' . urlencode($row[8]);
$output .= '&tx_btsimplecontact_pi1[email]=' . urlencode($row[9]);
$output .= '&tx_btsimplecontact_pi1[nachricht]=' . urlencode($row[10]);
$output .= '&tx_btsimplecontact_pi1[copy]=' . urlencode($row[11]);
$output .= '&submit=Abschicken';
print_r ($row);
print ($output);
$row[12]= $actual;
print_r ($row);
fputcsv($fp,$row);
};
};
curl ('http://www.post.html', "$output");
};
CSV 格式的输出如下:
Firma,Anrede,Titel,Vorname,Nachname,Strasse,PLZ,Telefon,Fax,Email,Nachricht,CopyFlag,Importiert,Importdate,Importtime
Testfirma1,Herr,Dr.,Vorname1,Name1,Strasse1,11111,12345567,123456,1@keine.de,nachricht1,1,,24.03.2016,22:00:00
Testfirma1,Herr,Dr.,Vorname1,Name1,Strasse1,11111,12345567,123456,1@keine.de,nachricht1,1,"25.03.2016 - 01:10:15",24.03.2016,22:00:00
name3,Name3,Strasse3,33333,32345567,323456,3@keine.de,nachricht3,1,,25.03.2016,22:00:00
name3,Name3,Strasse3,33333,32345567,323456,3@keine.de,nachricht3,1,,25.03.2016,22:00:00,"25.03.2016 - 01:10:16"
CSV 是平面文件,更新平面文件有两种方法:
- 追加到最后。
- 重写整个内容。
您想要#2,但您已经完成了#1。 #2 也相当低效,所以在像你这样的情况下,大多数人倾向于切换到数据库。
如果您需要不需要设置服务器的轻量级软件,总有 SQLite。
我想打开一个包含以下条目的 csv 文件:
Firma,Anrede,Titel,Vorname,Nachname,Strasse,PLZ,Telefon,Fax,Email,Nachricht,CopyFlag,Importiert,Importdate,Importtime
Testfirma1,Herr,Dr.,Vorname1,Name1,Strasse1,11111,12345567,123456,1@keine.de,nachricht1,1,,24.03.2016,22:00:00
Testfirma2,Herr,Dr.,Vorname2,Name2,Strasse2,22222,22345567,223456,2@keine.de,nachricht2,1,,25.03.2016,22:00:00
Testfirma3,Herr,Dr.,Vorname3,Name3,Strasse3,33333,32345567,323456,3@keine.de,nachricht3,1,,25.03.2016,22:00:00
Testfirma4,Herr,Dr.,Vorname4,Name4,Strasse4,44444,42345567,423456,4@keine.de,nachricht4,1,,25.03.2016,22:00:00
然后我想检查第 12 列 (Importiert
) 中是否没有任何内容,并检查 importtime
是否小于 systemtime
。如果两者都是真的,我想将此数据发送给 curl 做一些 post。完成后,我想在第 12 列中写一个时间戳。我用这个例子试过了:
$fp = fopen("Testformular.csv", "r+");
$line = 0;
while ( $row = fgetcsv($fp) ) {
if($line === 0){
$line++;
continue;};
$actual = date("d.m.Y - H:i:s", time());
$csvtime= date("d.m.Y - H:i:s", strtotime($row[13]. $row[14]));
if (empty($row[12])){
if ($actual > $csvtime){
$output = "";
$output .= 'tx_btsimplecontact_pi1[name]=' . urlencode("");
$output .= '&tx_btsimplecontact_pi1[firma]=' . urlencode($row[0]);
$output .= '&tx_btsimplecontact_pi1[sex]=' . urlencode($row[1]);
$output .= '&tx_btsimplecontact_pi1[titel]=' . urlencode($row[2]);
$output .= '&tx_btsimplecontact_pi1[vorname]=' . urlencode($row[3]);
$output .= '&tx_btsimplecontact_pi1[nachname]=' . urlencode($row[4]);
$output .= '&tx_btsimplecontact_pi1[strasse]=' . urlencode($row[5]);
$output .= '&tx_btsimplecontact_pi1[plz_ort]=' . urlencode($row[6]);
$output .= '&tx_btsimplecontact_pi1[telefon]=' . urlencode($row[7]);
$output .= '&tx_btsimplecontact_pi1[fax]=' . urlencode($row[8]);
$output .= '&tx_btsimplecontact_pi1[email]=' . urlencode($row[9]);
$output .= '&tx_btsimplecontact_pi1[nachricht]=' . urlencode($row[10]);
$output .= '&tx_btsimplecontact_pi1[copy]=' . urlencode($row[11]);
$output .= '&submit=Abschicken';
print_r ($row);
print ($output);
$row[12]= $actual;
print_r ($row);
fputcsv($fp,$row);
};
};
curl ('http://www.post.html', "$output");
};
CSV 格式的输出如下:
Firma,Anrede,Titel,Vorname,Nachname,Strasse,PLZ,Telefon,Fax,Email,Nachricht,CopyFlag,Importiert,Importdate,Importtime
Testfirma1,Herr,Dr.,Vorname1,Name1,Strasse1,11111,12345567,123456,1@keine.de,nachricht1,1,,24.03.2016,22:00:00
Testfirma1,Herr,Dr.,Vorname1,Name1,Strasse1,11111,12345567,123456,1@keine.de,nachricht1,1,"25.03.2016 - 01:10:15",24.03.2016,22:00:00
name3,Name3,Strasse3,33333,32345567,323456,3@keine.de,nachricht3,1,,25.03.2016,22:00:00
name3,Name3,Strasse3,33333,32345567,323456,3@keine.de,nachricht3,1,,25.03.2016,22:00:00,"25.03.2016 - 01:10:16"
CSV 是平面文件,更新平面文件有两种方法:
- 追加到最后。
- 重写整个内容。
您想要#2,但您已经完成了#1。 #2 也相当低效,所以在像你这样的情况下,大多数人倾向于切换到数据库。
如果您需要不需要设置服务器的轻量级软件,总有 SQLite。