Frage von benjiton, 22

PHP ohne API - CSV einbinden mithilfe eines Input-Felds - kann mir jemand helfen?

PHP ohne API - CSV einbinden und mithilfe eines Input-Felds 'nen Wert an der ersten Stelle suchen und zweiten Wert ausgeben, sofern input true
Der Titel sagt quasi alles.

Ich habe zwar schon die ganze Zeit gegooglt, allerdings Lösungen mit irgendwelchen APIs gefunden. Jedoch was letztendlich sein sollte: Ich binde eine .csv ein, Komma separiert mit jeweils zwei Einträgen pro Zeile. In einem Input Feld sollte alles eintragbar sein, sollte beim Submit der Wert existieren, dann soll der zweite Wert ausgegeben werden. Sollte der Input Wert nicht existieren, einfach eine else, dass es den wert nicht gibt bzw. keine weitere Daten über diesen Wert.

Antwort
von PeterKremsner, 22

Ich blick bei deiner angabe nicht durch

  1. Was meinst du mit API? Wenn du als API Funktionen wie fopen meinst, darum kommst du nicht herum irgendwie musst du ja dem os sagen dass es die Datei öffnen soll.
  2. Was soll in dem Inpufeld eintragbar sein, ein wert der dann in der csv gesucht wird oder die csv als text?
Kommentar von benjiton ,

Das Ganze mit PHP - so weit hat es sich ja quasi das Thema mit der API geregelt

Der Nutzer gibt irgendeinen Wert an, dieser ist jeweils der erste Wert von Zwei in einer "Spalte". Sollte dieser Wert gefunden werden, dann soll der zweite Wert ausgegeben werden. Stimmt die Eingabe mit keinem Wert in der Ersten "Spalte" über ein, so soll der Nutzer eine Fehlermeldung erhalten.

Kommentar von PeterKremsner ,

Du kannst die Funktion fgetcsv verwenden.

http://php.net/manual/en/function.fgetcsv.php

bei den Examples steht drinnen wie man eine komplette CSV Datei Zeile für Zeile parst.

Du kannst dir dann entweder ein Assoziatives Array draus basteln oder auch ein Objekt oder was immer du möchtest. Darin suchst du dann den Wert.

Antwort
von Sawascwoolf, 17

der Befehl den du suchst ist fgetcsv.

deine Lösung sieht dann in etwa so aus.

function searchCsv ($needle) {

$file = fopen("pathToFile","r);

while ($row=fgetcsv($file,0,",")) {

if ($row[0]==$needle) return $row[1];

}

return FALSE;

}

Code nicht getestet, bin nur via Handy online.

Keine passende Antwort gefunden?

Fragen Sie die Community