valideren csv input

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

.Net Developer - B2B & B2C klantportalen, were

Al meer dan 25 jaar bouwt dit hecht en informeel team software developers in Rotterdam complexe bedrijfskritische (web & mobile) applicaties voor het MBK en multinationals, zowel in het binnen- als buitenland. Ze bouwen uiteenlopende applicaties voor uiteenlopende klanten. Om maar wat voorbeelden van organisaties en software oplossingen te noemen: Een uitgebreid ERP en projectmanagement systeem, waardoor een bouwbedrijf haar processen wereldwijd just-in-time kan inrichten. Een klantportaal voor een verzekeringsmaatschappij, waardoor 2+ miljoen klanten gebruiksvriendelijk hun zaken regelen en inzien. Een patiënten portaal voor de registratie, bijhouden van het patenten dossier, de planning en facturatie van de zorg zodat de

Bekijk vacature »

Noordoost Java Developer vacature

Java Developer Noordoost Word onderdeel van een topteam met ervaren Java Developers. Loop voorop in de ontwikkelingen en help mee innoveren. Focus op Java Wij bouwen State of the Art applicaties met de nieuwste Java technologie en frameworks. Dit doen we door ons te richten op de open source-oplossingen binnen de wereld van Java, alle nieuwe ontwikkelingen te volgen en onze kennis te delen binnen onze eigen Java Community. Dit betekent bijvoorbeeld dat we aanwezig zijn op veel conferenties; Oracle Code One, Devoxx en JFall. We organiseren ook onze eigen collegiale sessies en hackatons waar we kennis en plezier combineren.

Bekijk vacature »

Software Developer / PHP

Functieomschrijving Werk jij graag in een vooruitstrevende en groeiende organisatie aan een eigen ontwikkeld platform dat door steeds meer bedrijven in Nederland gebruikt wordt? Ligt jouw passie bij software development en heb jij ervaring met PHP? Dan zijn wij op zoek naar jou voor dit bedrijf in regio Eindhoven! Je werkt samen met het ontwikkelteam aan de ontwikkeling van het platform, o.a. met Symfony, Docker, API's en Git; Je denkt mee over verbeteringen, doorontwikkeling en schaalbaarheid van het platform; Je werkt in sprints van twee weken; Je spreekt met diverse betrokkenen om samen een optimaal product neer te zetten. Functie-eisen

Bekijk vacature »

.NET Developer / C# / Ambitieus / Vrijheid

Functieomschrijving Wil jij als .NET Developer in een omgeving terecht komen waar jij jouw net geschreven C# .NET code direct in de praktijk ziet gaan en waarbij jij met jouw C#.NET code bijdraagt aan een levensreddend product? Reageer dan snel op deze toffe .NET Developer functie! Het ontwikkelen van nieuwe functionaliteiten; Aanpassen van de bestaande bedrijfsapplicatie; Door ontwikkelen van huidige product; Bedenken van nieuwe oplossingen voor specifieke vraagstukken. Functie-eisen Minimaal hbo-gediplomeerd; Je hebt minimaal drie jaar relevante werkervaring als .NET Developer; Je kunt goed zelfstandig werken en hebt een goede drive; Je bent zowel Nederlands als Engels goed onderlegd. Bedrijfsomschrijving

Bekijk vacature »

ETL Developer Datawarehouse

Wil jij je ETL-ontwikkelexpertise inzetten binnen de zorg? Dan is dit jouw baan! Je werkt vanuit de Crystal Tower in Amsterdam met de nieuwste Microsoft-technieken aan slimme oplossingen die zorgorganisaties helder inzicht geven in hun verbeterpunten. Jouw baan Onze datamodellen geven ziekenhuizen meer inzicht in hun huidige activiteiten en verwachte ontwikkelingen. Jij gaat deze complexe modellen verder uitbouwen én ontwikkelt en verbetert daarbij proactief de ETL in C# en SQL. Hierbij heb je alle ruimte om te sparren met (ervaren) collega-ETL-ontwikkelaars en werk je samen met onze BI-ontwikkelaars, software developers en consultants technische implementatie. Jouw team Je versterkt een gemotiveerd

Bekijk vacature »

SQL Developer met SSRS, interne functie+thuiswerke

Functieomschrijving Als SQL Developer binnen deze organisatie wordt je verantwoordelijk voor het developen en onderhouden van hun databases alsmede het bouwen van rapportages voor hun klanten. Je hebt dus een goede kennis van SQL (Stored Procedures, Triggers, Functions) en daarnaast SSRS. Ook kan je ETL processen maken middels SSIS en kubussen middels SSRS. In deze functie ben je voornamelijk technisch bezig, maar houdt je je ook regelmatig bezig met de operationele kant om hun producten en diensten te optimaliseren. Respectievelijk zo’n 70/30. Je zal werken vanuit hun kantoor in Veenendaal. Het gaat dus om een interne functie waarbij je zo

Bekijk vacature »

Senior .NET developer / .NET Core / C# / Architect

Functieomschrijving Ben jij een Senior .NET developer met meerdere jaren ervaring en wil jij deze ervaring graag inzetten bij een gerenommeerde organisatie die alleen maar de meest innovatieve projecten oppakt? Heb jij interesse in IoT, AI en complexe datastromen en wil jij meedenken over architectuur vraagstukken? Lees dan nu verder! Je dagelijkse werkzaamheden bestaan uit: Het ontwikkelen van kwalitatief sterke code met C#, .NET Core en Azure; Het van scratch af aan bouwen van oplossingen, platformen, apps en andere portalen; Het meedenken over architectuur vraagstukken; Het leveren van technische input tijdens (pre)sales trajecten; Het bouwen van koppelingen middels API's; Het

Bekijk vacature »

Senior Front-end Developer vacature

Senior Front-end Developer Jij weet wat er nodig is. Jouw hart gaat sneller kloppen van techniek. Jij wil vooruit. Je bent creatief, thuis in gebruikersinteractie en een Developer in hart en nieren. Daarnaast heb jij een klantgerichte en initiatiefrijke houding. Precies de kwaliteiten die een Front-end Developer nodig heeft. Wat doe jij als developer bij Sogeti? Als Front-end Developer werk je aan de technische realisatie van front-end (web)applicaties in de verschillende opdrachten voor Sogeti’s klanten. Dit kan zowel op klantlocatie, als intern bij Sogeti. Jij houdt van het uitdenken en implementeren van responsive (web) apps, en zet hiervoor jouw uitgebreide

Bekijk vacature »

Enthousiaste DevOps-ontwikkelaar voor eIDAS

Functie­omschrijving De Dienst ICT Uitvoering, kortweg DICTU, is een van de grootste en meest vooruitstrevende ICT-dienstverleners van de Rijksoverheid. Wij bouwen onder meer de veilige en betrouwbare digitale toegang tot de diensten en producten van het ministerie van Economische Zaken en Klimaat voor burgers en bedrijven in het buitenland. Daar werk jij als DevOps-ontwikkelaar bij DICTU in Assen aan mee. Het ministerie van Economische Zaken en Klimaat heeft voor haar diensten en inspecties één moderne toegangspoort. Een aantal van die diensten en inspecties is mede dankzij jou ook voor burgers en bedrijven uit acht EU-landen veilig en betrouwbaar toegankelijk. Dat

Bekijk vacature »

Full-stack Java Developer/ Web development/ 4.000

Functieomschrijving Ben jij een full-stack java developer die graag een cruciaal platform (door) ontwikkelt? Schroom jij het niet om jouw brede skillset in te zetten om verbeterslagen aan te dragen en uit te voeren? Lees dan snel verder! Bouwen van nieuwe functionaliteiten; Door ontwikkelen van de online omgeving; Bug fixing; Testen van (jouw) code, handmatig-, unit-, integratie- en browser tests. Functie-eisen Minimaal een MBO-diploma met HBO werk- en denkniveau; Minimaal 1 jaar werkervaring met Java; Kennis van frameworks zoals: Spring (MVC), Struts, Hibernate, Junit, etc.; Kennis van tooling zoals: IntelliJ, GIT, Jenkins, Gradle; Kennis van front-end technieken zoals: JavaScript, Bootstrap

Bekijk vacature »

Windows Systeembeheerder

Als jij ICT in- en uitademt, dan zijn wij op zoek naar jou! Voor de uitbreiding van ons team zijn wij op zoek naar een: Windows Systeembeheerder (Regio Utrecht) Omschrijving: Voor onze klanten, allemaal MKB-bedrijven uit de regio, verzorgen wij de ICT-omgeving. Zowel remote als bij de klant op de vloer. Wij helpen onze klanten met alle voorkomende ICT-zaken en zorgen dat het op rolletjes loopt. Wij zoeken een no-nonsense collega die plezier haalt uit het oplossen van ICT-problemen, groot en klein. Herken jij jezelf in het profiel van Windows Systeembeheerder? Je vindt klanten helpen leuk en bent klantgericht ingesteld

Bekijk vacature »

.NET Developer Datawarehouse

Bouw jij graag mee aan de nieuwe generatie van het datawarehouse-framework voor de zorg? En kent programmeren in C# geen geheimen voor jou? Dan pas jij perfect in ons team in Amsterdam. We bieden jou de kans om complexe uitdagingen op te lossen en te werken met de nieuwste technieken. Jouw baan Zorgprofessionals nemen belangrijke beslissingen op basis van data uit ons datawarehouse. Als .NET Developer Datawarehouse ontwikkel jij een nieuwe generatie van het achterliggende framework. Je werkt dagelijks met zeer grote en complexe datasets en krijgt te maken met uitdagende issues, waarbij diepgaand onderzoek nodig is. Je faciliteert de

Bekijk vacature »

Starter Beta WO afgestudeerd traineeship Developer

Functieomschrijving Tijdens het traineeship krijg je de keuze om jezelf te ontwikkelen als developer. Welke richting (Front-end/Backend/Fullstack developer) dat mag jij zelf kiezen. Samen met met je collega's ga je kijken welke route het beste bij jou past en daar wordt een persoonlijk groeipad voor ontwikkeld. Ze zoeken wel mensen die (enige) ervaring hebben binnen development dus passie voor IT en programmeren is hier wel een must. Functie-eisen - Je hebt een afgeronde master of bachelor opleiding met béta component; - Je hebt kennis van een of meerdere programmeertalen; - Je bent creatief en denkt out-of-the-box; - Je bent gedreven

Bekijk vacature »

Technisch Ontwerper / Applicatie Ontwikkelaar

Technisch Ontwerper / Applicatie Ontwikkelaar Actief Wat ga je doen? Als Technisch Ontwerper / Applicatie Ontwikkelaar kom je te werken bij onze gerenommeerde klanten op projecten of opdrachten van omvang en formaat. Je bent verantwoordelijk voor het omzetten van functionele specificaties naar een technisch ontwerp, het ontwerp van programmaspecificaties voor toepassingen, de realisatie van (gewijzigde) programmaonderdelen en databestanden van toepassingen en de technische systeemtest van applicatietoepassingen. Daarnaast geef je vorm aan webpagina’s en applicaties, stel je gebruikersdocumentatie op en verleen je ondersteuning bij het oplossen van productiefouten. Tevens ben je verantwoordelijk voor het samenstellen en onderhouden van de applicatie c.q.

Bekijk vacature »

IT Procesmanager

Ben je een ervaren IT Procesmanager en op zoek naar een nieuwe uitdaging waarin je veel verantwoordelijkheid draagt? Heb je een sterk analytisch vermogen en ben je communicatief erg vaardig? Heb je daarnaast affiniteit met het inzetten van automatisering en bedrijfsprocessen? Lees dan snel verder. Wat ga je bij ons doen? De KB heeft een digitale infrastructuur met veel onderling afhankelijke componenten die door tientallen verschillende leveranciers worden beheerd. Als IT Procesmanager zorg je voor een goede inrichting van de IT processen waarmee de digitale diensten van de KB gewaarborgd worden. Je inventariseert de verwachtingen van de stakeholders m.b.t. deze

Bekijk vacature »
Hans Vereyken

Hans Vereyken

02/06/2010 00:21:40
Quote Anchor link
Beste,

Ik ben reeds enige tijd aan het googlen om een goede oplossing te vinden voor het volgende:

Ik ben bezig met een website voor iemand die regelmatig grote hoeveelheden gegevens in een mysql database moet vervangen. Het programma dat hij op zijn computer gebruikt (Microsoft Access) heeft niet meteen de functies aan boord om deze taken uit te voeren. Ik laat hem de tabellen exporteren als csv waardes die hij dan in de website kan laden (er moeten hier en daar veranderingen gebeuren in de gegevens en een aantal zaken toevoegen, niet 'gewoon' synchroniseren, want dat gaat gewoon met access natuurlijk).
Gisteren gebeurde het dat Access een foutje maakte bij het aanmaken van het csv-bestand (Ja, het kan... ), hij probeert dit foutieve bestand in te laden... eerst wordt de database leeggemaakt, dan de nieuwe waardes erin, maar dat laatste ging dus niet goed, gevolg: website helemaal plat.
Mijn punt: hoe kan ik nakijken of er foutjes in de csv zitten alvorens deze te verwerken zodat dit niet meer kan gebeuren. Ik heb al gedacht om de gegevens eerst in een andere database te laden, wanneer dit faalt niet verder te gaan met het verwerken en zo de site intact laten, maar dit lijkt mij nogal omslachtig, ik zou liever een goede methode hebben om de csv te valideren.
Ik heb gezocht naar een Regular Expressions hiervoor maar ben nergens geraakt.
Eigenschappen van de csv: scheidingsteken: ","
Sommige waardes worden encapsulated met: "
Er moeten 3 waardes zijn gescheiden door komma's, dan moet er een /n komen

Iemand die mij een hint kan geven?

Dank bij voorbaat.
 
PHP hulp

PHP hulp

06/08/2020 00:46:11
 
Bas Kreleger
Beheerder

Bas Kreleger

02/06/2010 01:59:49
Quote Anchor link
Wil je het perse met PHP doen (geautomatiseerd) of kan dit ook client side?
 
Terence Hersbach

Terence Hersbach

02/06/2010 09:23:21
Quote Anchor link
hoe importeer je? PHP heeft namelijk hier functies voor die ook checken op fouten:
http://nl3.php.net/fgetcsv
 
Jan geen

Jan geen

02/06/2010 09:36:54
Quote Anchor link
Als je het importeert met de functie die hierboven wordt beschreven, dan kan je daarna eerst de array doorlopen en je checks doen en mits je geen fouten vindt dan pas de db updaten.
 
Hans Vereyken

Hans Vereyken

04/06/2010 08:35:09
Quote Anchor link
De input komt van een html formulier.
Dit is wat ik heb ondertussen, wel nog wat onhandig maar het komt wel goed zo denk ik
Edit:
script verwijderd, nieuwe versie in volgende post
Gewijzigd op 05/06/2010 13:50:05 door Hans Vereyken
 
Hans Vereyken

Hans Vereyken

04/06/2010 12:59:05
Quote Anchor link
Deze ziet er beter uit en werkt, heb hem ook ineens in het Engels gemaakt, toch steeds breder inzetbaar dan.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
<?php
function validCsv ($csv, $regexps) {
    $data = nl2br ($csv); //nl2br
    $numberOfLines = substr_count($data, "<br />"); //Count occurances of <br />
    $result[0] = true;
    $result[1] = $numberOfLines;
    $result[2] = "";
    
    $lineNumber = 0;
    while ($lineNumber < $numberOfLines) {
        $lineNumber++;
        list ($lineString, $data) = explode ("<br />", $data, 2); //First line in $lineString, rest in $data
        $lineArray = str_getcsv ($lineString, ","); // split values of $lineString in array in $lineArray
        if (!$lineArray) {
            $result[0] = false;
            $result[2] .= "Error in <strong>line ".$lineNumber."</strong>: can not split the string (".$lineString.")<br />";
        }

        
        $offset = 0;
        while (isset ($regexps[$offset])) { // as long as there are regular expressions set hold them against the next field, if field count doesn't match --> false
            $field = preg_match ($regexps[$offset], $lineArray[$offset]);
            $offset++;
            if (!$field | $field == "0") { //if regular expression didn't match or preg_match fails/dies
                $result[0] = false;
                $result[2] .= "Error in <strong>line ".$lineNumber.", field ".$offset."</strong>: no match with regular expression (".$lineArray[$offset-1].")<br />";
            }
        }

        if (isset ($lineArray[$offset])) { //If there are more line's than regular expressions
            $result[0] = false;
            $result[2] .= "Error in <strong>line ".$lineNumber."</strong>: to many fields (".$lineString.")<br />";
        }
    }

    return $result;
}

if (isset ($_POST['submit'])) {
    $hoofdgroepen = $_POST ['hoofdgroepen'];
    $regexps[0] = "/^[1-9]{1}[0-9]{0,3}$/";
    $regexps[1] = "/^[a-zA-Z0-9.,()\/ ]{1,50}$/";
    $regexps[2] = "/^[1-9]{1}[0-9]{0,3}$/";
    $result = validCsv ($hoofdgroepen, $regexps);
    echo "True/False: ".$result[0]."<br />";
    echo "Number of lines: ".$result[1]."<br />";
    echo "Errors: <br />".$result[2]."<br />";
}

?>
 
Hans Vereyken

Hans Vereyken

15/06/2010 09:56:45
Quote Anchor link
Deze functie werkt perfect op mijn wamp server, als ik het naar mijn server upload en ik roep deze functie ergens aan blijft het gehele scherm gewoon wit... ik heb error_reporting (E_ALL) bovenaan het desbetreffende script gezet om er zeker van de zijn dat alle fouten weergegeven worden.
Ik heb geen idee wat er hier fout gaat, op mijn computer werkt het perfect...
Ik heb hier php 5.3.0, de server heeft php 5.2.6

Ik hoop dat iemand mij verder kan helpen
Alvast bedankt

Edit:
Ik heb het probleem gevonden, str_getcsv is een functie die pas bestaat sinds PHP 5 >= 5.3.0, hoe los ik dit op?
Gewijzigd op 15/06/2010 10:11:48 door Hans Vereyken
 
Karl Karl

Karl Karl

15/06/2010 10:33:02
 
Afra ca

Afra ca

15/06/2010 13:02:24
Quote Anchor link
Ik was las toevallig net de comments van fgetcsv, en aangezien we het hier toch hebben over valid CSV: php.net volgt niet de RFC standaard van CSV. Zie voor meer uitleg het bugreport
Gewijzigd op 15/06/2010 13:08:53 door Afra ca
 
Hans Vereyken

Hans Vereyken

15/06/2010 21:40:29
Quote Anchor link
@Karl Karl
Ik heb alle linkjes bekeken, ik maar zoeken, het stond gewoon onder mijn neus. De eerste link is de beste, maar veel te uitgebreid, ik heb er dit van gemaakt, dat is genoeg voor wat ik nodig heb:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?php
if (!function_exists('str_getcsv')) {
    function
str_getcsv ($input) {
        $input = str_replace (array("\r", "\r\n", "\n"), "", $input);
        $input = $input.",";
        $offset = 0;
        while ($input != "") {
            if (substr ($input, 0, 1) == "\"") {
                list ($field, $input) = explode ("\",", substr ($input, 1), 2);
                $return[$offset] = $field;
            }
else {
                list ($field, $input) = explode (",", $input, 2);
                $return[$offset] = $field;
            }

            $offset++;
        }

        return $return;
    }
}

?>

Het is zeker geen volwaardig alternatief voor str_getcsv, maar zoals gezegd: voor mij is het voldoende.

@Afra ca
Ik denk niet dat dit probleem van toepassing was, maar zeker het lezen waard, danku!
Gewijzigd op 15/06/2010 21:43:13 door Hans Vereyken
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.