valideren csv input

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Sr Outsystems Ontwikkelaar ERP Javascript C#

Wie wordt jouw werkgever?: WR zoekt voor een vaste medewerker voor de volgende werkgever, je treedt gelijk in dienst bij deze werkgever: Wij ontwikkelen ERP systemen. Ben jij een gedreven Outsystems Ontwikkelaar? Heb je kennis van C#? Vaste baan: Sr Outsystems Ontwikkelaar ERP C# 3.500 - 4.200 Senior Outsystems Ontwikkelaar Wij ontwikkelen ERP systemen voor bouworganisaties. Dit doen zij tegen de hoogst mogelijke kwaliteit. Werken bij ons betekent werken in een start-up omgeving met veel groei mogelijkheden. Doorleren wordt op prijs gesteld en gefaciliteerd. Daarbij geven we jou veel verantwoordelijkheden en mogelijkheden om eigen initiatieven uit te voeren. Bij bij

Bekijk vacature »

Medior Sr PHP Developer Applicaties

Bij welk bedrijf je gaat werken: WR zoekt voor een vaste medewerker voor de volgende werkgever, je treedt gelijk in dienst bij deze werkgever: Deze werkgever levert diensten en oplossingen voor de uitwisseling van digitale en fysieke informatiestromen. Wil jij werken als PHP Developer? Heb jij ervaring als PHP developer? Vaste baan: Medior Sr PHP Developer Applicaties MBO+ HBO 2.800 - 4.300 Medior Senior PHP Developer Als fullservice marketingbureau werken we op alle fronten: e-mail, direct mail, mobile, web en social media. Marketing IT Tools ontwikkelen wij op maat of hebben wij in huis. Bij deze werkgever staan vertrouwen, samenwerkings-

Bekijk vacature »

Fullstack Developer GUI Linux

Bij welk bedrijf je gaat werken: WR zoekt voor een vaste medewerker voor de volgende werkgever, je treedt gelijk in dienst bij deze werkgever: Deze werkgever is de leider in intelligente signaleringssoftware voor o.a. 2G/3G, 4G/LTE, 5G netwerken. Ben jij een fullstack developer? Heb je ervaring met o.a. HTML en CSS, UI/UX design, JavaScript, Typescript, React, Go en PHP? Vaste baan: Fullstack Developer GUI Linux HTML CSS 3.000 - 4.500 Fullstack Developer Wij ontwikkelen intelligente software voor 4G / 5G, WiFi en andere complexe netwerken. Het gaat om software producten voor routing, security en interworking. Toe aan een mooie, nieuwe

Bekijk vacature »

Junior Backend Developer (JavaScript)

Junior Backend Developer (JavaScript) Do you love building stuff that is used by 10.000's employees in their day-to-day work? We are looking for an ambitious and driven back-end developer, that loves to be part of a great team of people and goes the extra mile. You’re interested in new tools and frameworks and want to get better every day. Did you know 80% of the global workforce, 2.7B people, is deskless? They only have access to their mobile phone, and we are building the core app that will improve their Employee Experience and make them more engaged. Oneteam's platform already

Bekijk vacature »

Full Stack Developer

Bij welk bedrijf je gaat werken: WR zoekt voor een vaste medewerker voor de volgende werkgever, je treedt gelijk in dienst bij deze werkgever: Wij ontwikkelen software voor de kinderopvang. Ben jij een Full Stack Developer? Heb je ervaring met (een deel van) de volgende stack: Python, Node.JS, Vue, Javascript, TypeScript, Swift (apps), Vaste baan: Full Stack Developer Python NodeJS Vue JavaScript 3.500 - 5.000 Full Stack Developer In de kinderopvang draait alles om het kind, maar soms neemt het papierwerk helaas de overhand. Wij vinden dat het kind centraal moet staan en vanuit deze filosofie hebben wij een innovatieve

Bekijk vacature »

Senior Java 8 Developer in High-Tech Industry

Is your interest triggered by software and in particularly Java? Do you have at least 8 years of experience with Java in a High-Tech Industry? Then you could be the perfect candidate. Our client is looking for an senior Java Developer, in Eindhoven, The Netherlands. Functie You will be end-to-end responsible for creating software in Java and Java EE, contributing to the development of several diagnostic applications in a scrum/Agile way of working. Diagnostic & Sequencing applications is done in several teams working together to deliver and integrate solutions to complex problems to enhance the diagnostic capabilities for our customers.

Bekijk vacature »

Mendix Ontwikkelaar Logistiek Bedrijf

Voor wie je gaat werken: WR zoekt voor een vaste medewerker voor de volgende werkgever, je treedt gelijk in dienst bij deze werkgever: Deze werkgever is een bergingsbedrijf. Wil jij graag aan de slag als Mendix Ontwikkelaar? Heb jij al ervaring met Mendix? Vaste baan: Mendix Ontwikkelaar Logistiek Bedrijf HBO 2.800 - 4.200 Mendix Ontwikkelaar Wij garanderen op elk moment mobiliteit. Een flinke belofte, waarvoor we graag alles uit de kast halen. Van het bergen en transporteren tot het zorgen voor vervangend vervoer, in heel Europa. En dat doen we echt samen! Met hun chauffeurs op de weg, onze planners

Bekijk vacature »

.NET Developer SQL

Voor wie je gaat werken: WR zoekt voor een vaste medewerker voor de volgende werkgever, je treedt gelijk in dienst bij deze werkgever: Zij bieden innovatieve oplossingen die logistieke processen efficiënter, gestroomlijnder en overzichtelijker maken. Wil jij werken als .NET Developer? Heb jij ervaring met SQL? Vaste baan: .NET Developer SQL JavaScript 3.300 - 4.500 NET Developer We zijn de schakel tussen Fleet en management. Of het nu gaat om positiedoorgifte of datacommunicatie, wij bieden innovatieve oplossingen die logistieke processen efficiënter, gestroomlijnder en overzichtelijker maken. Onze applicaties zijn eenvoudig in gebruik maar zitten boordevol complexe functionaliteit waarmee wij het verschil

Bekijk vacature »

ICT consultant poliklinisch zorgproces

Samenvatting: Vind jij goede patiëntenzorg belangrijk? En wil jij daar als ICT consultant aan bijdragen? Dan gaan we graag met jou in gesprek! Lees snel verder over deze baan met betekenis. Functieomschrijving: De ICT-ontwikkelingen gaan steeds sneller. Dit geldt ook voor ICT in de gezondheidszorg. We hebben als ambitie om het beste digitale ziekenhuis te worden. In jouw rol als ICT Consultant heb je als doel het ziekenhuis op weg te helpen met de steeds snellere ontwikkeling rondom de zorg, niet alleen innovatieve projecten, maar ook de eisen vanuit wet- en regelgeving. Het is jouw taak om deze ontwikkelingen en

Bekijk vacature »

Mendix Lead Developer bij PostNL

Mendix Lead Developer Den Haag HBO/WO IT - software development Professional "Werk samen met ons om van PostNL een 'logistical tech (driven) company' te maken door Mendix in te zetten voor onze kritieke logistieke processen". Wat ga je doen? PostNL heeft de ambitie om uit te groeien tot het meest efficiënte en innovatieve logistieke post en e-commerce platform in de Benelux. Om die digitale transformatie tot een succes te maken, maken wij op een unieke manier gebruik van Mendix technologie. Wij zetten Mendix namelijk in voor onze meest kritieke logistieke systemen. Daarom bouwen we hard aan onze eigen Mendix engineering

Bekijk vacature »

Java Software Ontwikkelaar Softwarebedrijf

Voor wie je gaat werken: WR zoekt voor een vaste medewerker voor de volgende werkgever, je treedt gelijk in dienst bij deze werkgever: Deze werkgever levert softwareoplossingen voor de lokale overheid. Ben jij geschikt als Java Ontwikkelaar? Heb je ervaring met Java of Kotlin? Vaste baan: Java Software Ontwikkelaar Softwarebedrijf HBO 3.500 - 4.800 Java Ontwikkelaar Deze werkgever is een softwarebedrijf, actief voor overheden. Werkprocessen kunnen worden geoptimaliseerd met onze software. Applicaties kunnen door organisaties zelf ingericht worden, met een open datamodel, koppelingen met derden, en niet te vergeten: webservices. Deze werkgever is een veelzijdige organisatie. Je werkt voor de

Bekijk vacature »

Zaandam zoekt Fullstack .NET Developer

Bedrijfsomschrijving Deze organisatie is een specialist in het optimaliseren van bedrijfsprocessen voor haar eindklanten, dit doen ze onder andere door het aanbieden van speciaal ontwikkelde bedrijfssoftware. In de rol die je hier gaat vervullen als Software .NET Developer ga je je bezig houden met het ontwikkelen van deze software, dit doe je in overleg met de klant en op basis van de wensen die zij uitspreken. Bij deze organisatie word je vervolgens vrijgelaten om te experimenteren met nieuwe concepten en nieuwe technieken, dit alles om ervoor te zorgen dat de klant voorzien is van innovatieve software die naadloos aansluit bij

Bekijk vacature »

C# Software Developer Software Gebouwinstallaties

Over het bedrijf: WR zoekt voor een vaste medewerker voor de volgende werkgever, je treedt gelijk in dienst bij deze werkgever: Wij onderhouden complete duurzame systeemintegratie oplossingen en services voor gebouw gebonden installaties. Ben jij geschikt als Software Engineer? Heb je ervaring in een soortgelijke functie? Vaste baan: C# Software Developer Software Gebouwinstallaties HBO 3.400 - 4.700 Software Engineer Ons bedrijf levert en onderhoudt complete duurzame systeemintegratie oplossingen en services voor gebouwgebonden installaties op het gebied van energiemanagement, klimaat, beveiliging en verlichting. Door onze innovatieve aanpak en creatieve oplossingen blijven wij vooruit lopen op de technologie. Zij werken voor MKB

Bekijk vacature »

Frontend Developer Webontwikkeling

Over het bedrijf: WR zoekt voor een vaste medewerker voor de volgende werkgever, je treedt gelijk in dienst bij deze werkgever: Wij ontwerpen, bouwen en automatiseren digitale programma's om klantervaringen te optimaliseren. Wil jij betrokken zijn bij de productie van innovatieve oplossingen? Heb jij ervaring in een medior / senior functie gefocust op Front-End Development? Vaste baan: Frontend Developer Webontwikkeling 3+ Jaar Ervaring 2.975 - 4.025 Frontend Developer Wij gebruiken AI technology om merken mensenlijker te maken. Hierdoor krijgt de klant een betere experience. Zij werken voor grote klanten. Zij doen omvangrijke projecten die we bij ons op kantoor realiseren

Bekijk vacature »

Medior Full Stack Developer Angular

Bij welk bedrijf je gaat werken: WR zoekt voor een vaste medewerker voor de volgende werkgever, je treedt gelijk in dienst bij deze werkgever: Wij ontwikkelen en implementeren configurator technologie (CPQ) voor Microsoft Dynamics. Ben jij een enthousiaste Full Stack developer? Heb je ervaring met Angular? Vaste baan: Medior Full Stack Developer Angular HBO 3.200 - 4.200 Medior Full Stack Developer Wij ontwikkelen software vanuit Microsoft Dynamics, waarbij administratieve processen bij klanten vergaand geautomatiseerd kunnen worden. Denk hierbij aan orderverwerking, offertes, calculaties, verkoop, projectbeheer en documentatie. En natuurlijk de totale integratie met het ERP systeem. Wij weten alles van Dynamics,

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

26/05/2022 23:29:27
 
B a s
Beheerder

B a s

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
 

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.