» CSV Delimiter ermitteln

Fatal/Parse Error abfangen und z.B. per E-Mail erhaltenNeuen Thread eröffnenNeue Antwort erstellenfunction imagecreatefrombmp(): Läuft mit allen Bitraten!
AutorNachricht
Administrator 

Name: Marc
Geschlecht:
Anmeldedatum: 28.08.2004
Beiträge: 52423
Wohnort: Lohmar


Meine eBay-Auktionen:
16.02.2015, 22:37
zitieren

Die Funktion durchläuft die bekannten Delimiter und gibt als Ergebnis das Zeichen aus, was die meisten Spalten resultierte:
function csv_delimiter($filename) {
$delimiters = array('|', ';', ',', "\t");
if ($h = fopen($filename, "r")) {
$data = array();
foreach ($delimiters as $delimiter) {
$data[ $delimiter ] = count(fgetcsv($h, 0, $delimiter));
fseek($h, 0);
}
return array_search(max($data), $data);
}
fclose($h);
}

In den meisten Fällen sollte das funktionieren. Es kann nur in die Hose gehen, wenn ein Zeichen im Text häufiger vorkommt als es Spalten gibt. z.B.:
ID;Auto, Farbe, Leistung, usw.;Besitzer

In dem Fall wäre der Delimiter das Semikolon gewesen, aber erkannt wurde das Komma, weil es häufiger vorkommt. Das dürfte allerdings sehr selten vorkommen, insbesondere wenn die CSV eine Spaltenüberschrift enthält.

Einsatzbeispiel
$csv_file = 'cloud/datenbank.csv';
if ($h = fopen($csv_file, "r")) {
if ($row = fgetcsv($h, 0, csv_delimiter($csv_file))) {
echo count($row) . "\n";
print_r($row);
}
fclose($h);
}

Todo:
  • escapte Zeichen besitzen hohes Potential ein Delimiter zu sein:
    ID;Auto\;Marke;Besitzer
  • Wenn Anführungszeichen eingesetzt werden ist der Delimiter leicht zu erkennen:
    "ID";"Auto;Marke";Besitzer
  • evtl. sollte man statt nur der ersten Zeile, die ersten 2-3 Zeilen durchzählen


pn email
Gast 
16.02.2015, 22:37
zitieren

Mach mit!

Wenn Dir die Beiträge zum Thread "CSV Delimiter ermitteln" gefallen haben oder Du noch Fragen hast oder Ergänzungen machen möchtest, solltest Du Dich gleich bei uns anmelden:



Registrierte Mitglieder genießen die folgenden Vorteile:
✔ kostenlose Mitgliedschaft
keine Werbung
✔ direkter Austausch mit Gleichgesinnten
✔ neue Fragen stellen oder Diskussionen starten
✔ schnelle Hilfe bei Problemen
✔ Bilder und Videos hochladen
✔ und vieles mehr...


Neuen Thread eröffnenNeue Antwort erstellen
Ähnliche BeiträgeRe:
Letzter Beitrag
Integra DC5 HKS SLD Delimiter
Hi, also nur ums kurz zu machen, vorstellung kommt noch bei gelegenheit :) Wie ist der HKS Delimiter einzubauen (Anleitung ist auf Japanisch :( )? Sprich in welcher Schalterstellung, in der für den K20 Motor oder für den vorgänger Integra mit dem...
von eak_a_mouZe
12
1.812
11.06.2013, 16:39
Motzi21
Batteriezustand ermitteln!?
Hallo Jungs, hab mal sone frage: Meine Autobatterie ist vor ein paar Tagen entladen, wahrscheinlich durch zuviel musik hören und licht anlassen, wärend der Motor aus ist! So nun hab ich das Auto mit Überbrückungskabeln angekriegt und war damit ca....
von JohnnyB
7
1.611
27.11.2007, 17:48
JohnnyB
Windows 8 Key aus Recovery ermitteln?
Kann ich aus einem Recovery den Windows 8 Key ermitteln und damit dann eine neue Installation durchführen? Damals als ich den Notebook gekauft hatte, war Windows 8 vorinstalliert und natürlich keine Installations-DVD dabei. Ich finde auch nirgends einen...
von mgutt
4
157
07.01.2015, 15:53
mgutt
Farbe von Querlenker ermitteln
Hallo, habe mir Focuz Querlenker gekauft nun brauche ich die ganuere Farbe da ich meine anderen Achsteile auch so lackieren will. Könnt mir evtl jemand helfen? Also farbe ist ca Bronze bzw...
von ArTo_1HGEJ2
9
913
02.11.2009, 17:07
silent
Domain Namen ermitteln (in URL bzw Hostnamen)
Es ist gar nicht so einfach eine Domain aus einer URL zu ermitteln, denn es gibt viele URLs, die exakt den selben Aufbau besitzen, aber unterschiedliche Bedeutungen haben: - bbc.co.uk ist eine Domain - www.db.de ist eine Subdomain Man benötigt also...
[PHP]von mgutt
1
7.959
04.02.2017, 03:26
mgutt
Lackfarbe: wie ermitteln ohne Farbcode?
Hallo, ich möchte mir bald einen Type R-Grill in meinen EJ9 einbauen; allerdings ist mein Fahrzeug vom Vorbesitzer, einem wohl bereits ein wenig senilen Rentner, 2 Jahre nach seiner EZ silber umlackiert worden. Jedoch ist dies wohl nicht das...
von MrHighway
9
17.882
26.03.2007, 08:09
STRAUBSTER
IP des Besuchers ermitteln REMOTE_ADDR, HTTP_X_FORWARDED_FOR
Auf Grund eines Tipps kam ich zu diesen Funktionen: http://www.dreamincode.net/code/snippet1745.htm http://www.grantburton.com/tag/http_client_ip/ Die waren mir in Sachen Performance zu schlecht, weshalb ich das gecodet habe: // set ip if...
[PHP]von mgutt
2
26.206
20.06.2009, 18:11
mgutt
Gewindesteigung bestimmen/messen/ermitteln: Wie?
Hi, wie ermittle ich die Gewindesteigung einer Schraube? Messe ich einfach den Abstand zwischen zwei Gewinden oder wie? Gibts was für Deppen so einer Art "Schraublehre"?...
von mgutt
26
45.537
12.07.2012, 20:21
RS188
Wie kann ich die kleinste Zahl ermitteln?
#include <stdio.h> #include <conio.h> int max(int a, int b) { if (a > b) return (a); else return (b); } int min (int a, int b) { if (a < b) return (a); else return (b); ...
[C]von Torti87
1
936
28.09.2011, 14:05
hugo17
Signaturgröße automatisch ermitteln und bei Bedarf ablehnen
Jeder kennt das als Forenbetreiber. Die User hauen große Grafiken in die Signatur oder gar animierte GIFs ohne Ende. Da setzen wir doch glatt einen Riegel vor: // check image size if (stripos($this->value, '[/img') !== false)...
[PHP]von mgutt
0
7.552
20.02.2009, 02:28
mgutt
© 2004 - 2025 www.programmierer-forum.de | Communities | Impressum |