Ich habe eine CSV-Datei, die etwa 500000 Anzahl von Zeilen haben. Was ich tun muss, ist die ersten 100 Zeilen in der ersten Schleife zu nehmen und die Zeilen zu manipulieren (sprich, sende die ersten 100 IDs an die API und speichere die Antwort). In der zweiten Schleife, überspringen Sie die ersten 100 Zeilen (bereits vergeben) und nehmen Sie weitere 100 Zeilen und senden Sie eine Anfrage an den Web-Service. Ähnlich, in der dritten Schleife, überspringe erste 200 Reihen und nimm weitere 100 Reihen und sende Anfrage zum Webservice und so weiter ...überspringen n Zeilen der CSV-Datei in PHP
Ich kann einzelne Reihen mit unterem Code nehmen. (Getestet: funktioniert super)
if (($handle = fopen($filename, "r")) !== FALSE) {
$id = 1;
$line = fgetcsv($handle); //skip first row
//fetch data from each row
while (($data = fgetcsv($handle, ",")) !== FALSE) {
$hotel_id = $data[0];
//call service to request to web service
$hotelDetailRequest = (new \Services\Hotel\Hotel)->getHotelStaticData($hotel_id);
//do stuff to response
}
}
In ähnlicher Weise kann ich einige erste Zeilen überspringen, da, wie ich erste Zeile übersprungen Hinzufügen
$line = fgetcsv($handle);
$line = fgetcsv($handle);
$line = fgetcsv($handle);
Aber das ist nicht mein erwartete Ergebnis wie oben erläutert. Ich benutze PHP (Laravel). Ich googelte, konnte aber keine passenden finden, die meinen Kriterien entsprachen. Hat jemand das gleiche Problem?
Jede Hilfe wäre willkommen. Vielen Dank, dass Sie
Warum müssen Sie dies tun? Sind Sie besorgt über die Häufigkeit, mit der die Anforderungen gesendet werden, oder handelt es sich um ein Leistungsproblem? Können Sie näher erläutern, warum Sie dies tun müssen, damit wir die zugrunde liegenden Probleme besser verstehen und vielleicht eine Lösung bereitstellen können? – Ohgodwhy
Ja, ich bin besorgt über die Häufigkeit, mit der die Anfragen gesendet werden. Also, ich führe die Abfrage nach Mitternacht und vormorgen durch. Ich speichere tatsächlich statische Daten in meiner Datenbank, wie in meinem Web-Service dokumentiert. – vijayrana