valideren csv input

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Javascript Developer (Angular/Node.js)

Bedrijfsomschrijving Ben jij een JavaScript developer en zoek je een nieuwe uitdaging binnen een inspirerende omgeving waarbij innovatie een belangrijke rol speelt? Dan ga je je hier zeker thuisvoelen! Deze organisatie zorgt dat bedrijven efficiënter en commercieel succesvoller worden. Dat doen ze door de combinatie van data en IT optimaal te gebruiken. Je komt terecht in een gepassioneerd team van 12 die allemaal een passie hebben voor data en IT. Je komt terecht in een prettige, informele en flexibele organisatie waar je met veel plezier aan de slag zal gaan. Door het succes zal het team de komende tijd/jaren verder

Bekijk vacature »

Senior Front-End Developer

As a Senior Front-end Developer you maintain the balance between creativity and functionality for our webshop, and you coach your fellow developers. How do I become a Senior Front-End Developer at Coolblue? As a Senior Front-end Developer you work on the user-friendliness of our webshop for millions of customers. You enjoy working with the Interaction Designer to pick up stories. You get energy from coming up with creative solutions and are happy to present this within the team. You are also proud of your work and welcome all feedback. You share your knowledge with your team and other front-enders. "Want

Bekijk vacature »

Senior C# Developer

UPS Nederland zoekt een Senior Developer C# * Remote werken mogelijk Wil jij werken aan complexe IT-systemen bij een van de grootste logistieke werkgevers ter wereld? Als ontwikkelaar bij UPS werk je aan opkomende technologieën en DevOps processen om ervoor te zorgen dat onze logistieke processen zo soepel en efficiënt mogelijk verlopen. Dit ga je doen Je bent betrokken bij alle facetten van applicatieontwikkeling. Je bent betrokken bij alle facetten van applicatieontwikkeling: van ontwerpen en bouwen tot testen en implementeren. Je levert ontwerpen die passen bij de onderliggende frameworks en concepten, bouwt efficiënte en testbare code, identificeert en integreert modulaire

Bekijk vacature »

Digital business owner

Heb jij ambitie om organisaties te helpen bij het behalen van hun doelstellingen? Wil je merken groter en succesvoller maken? Als digital business owner bij EF2 kom je op voor de belangen van onze klanten. Je weet te inspireren en brengt het digitale niveau van klanten naar het volgende niveau. Je organiseert kennis- en innovatiesessies. Door jouw jarenlange ervaring weet je wat er in de branche van onze klanten speelt en ben je in staat kansen te signaleren en de uitvoer te realiseren. Intern manage je cases op gestroomlijnde wijze, binnen een team van specialisten. Het resultaat? Blije klanten, geïnspireerde

Bekijk vacature »

Medior/Senior PHP Developer / Marketing / Impact

Bedrijfsomschrijving Deze informele organisatie brengt campagnes naar ongekende grote hoogtes! Jij kan als PHP Developer echt impact maken voor klanten en hun marketing succesvoller laten worden. Dat door je voor bekende organisaties zoals de NS, Peugeot, Achmea, KvK, Eneco en Miele. Binnen dit bedrijf heerst er een informele, plezierige en open sfeer. Bij onze opdrachtgever ligt er veel aandacht op persoonlijke ontwikkeling. Je gaat hier namelijk vrijheid krijgen om op je eigen manier invulling te geven aan je werk, maar je kan altijd op je collega’s terug kunnen vallen voor advies en tips. Functieomschrijving In de functie van PHP Developer

Bekijk vacature »

Back-end Developer

Cube in Twente is op zoek naar een Back-end Developer Medior / Senior Functie omschrijving Als Back-end Developer bouw je met jouw kennis de beste oplossingen voor de vragen van onze klanten en kun je goed onderbouwen waarom nu juist déze techniek het beste aansluit bij zijn wensen. Daarnaast sta je ervoor open je kennis te delen met je collega developers. Op deze manier haal jij het maximale uit de samenwerking met de klant en til jij je collega’s naar een hoger niveau. We zijn gegroeid door focus te houden op het plezier van het team en op de details

Bekijk vacature »

.NET Developer

Bedrijfsomschrijving Our client is a leading software company in the region of Amersfoort. They offer solutions in the Cloud (SaaS) to more than 2 million users. Their software supports 2000 clients through different HR solutions. They do this together with 1000 colleagues. You will be part of the team that is focused on integrations. This is a small, driven and international team. As a .NET Developer you are responsible for developing self-service APIs in C# within a .NET-framework. You will also perform unit tests on what you have developed. These APIs are used to automate different HR processes for their

Bekijk vacature »

Front-end Ontwikkelaar - Publieke Veiligheid

Help JIJ onze klanten in de Digitale Transitie? Neem dan contact met MIJ op! Wij geloven dat organisaties meer wendbaar moeten worden én blijven. Dat maakt organisaties toekomstbestendig. Ben jij een leergierige software engineer met passie voor front-end development? Wil jij je verder ontwikkelen in de nieuwste front-end technologieën? Zoek jij uitdagende klussen in teamverband? Wij bieden jou die uitdaging en de mogelijkheden jezelf verder te ontwikkelen. We leveren een bijdrage aan het veiliger maken van Nederland en daar zijn we trots op! Heb je minimaal drie jaar ervaring in zo’n mooie rol, ben je inspirerend en dynamisch? In de

Bekijk vacature »

Cloud Developer - Smart Logistics

Bouw jij de professionele applicaties die onze klanten zo hard nodig hebben? En wil je graag met de nieuwste technologieën werken binnen een DevOps scrumteam? Lees dan snel verder! Wat ga je doen? “Use digital to move smarter De unit Smart Logistics binnen de Transport & Logistics sector van CGI ontwerpt, bouwt en onderhoudt veelal missie-kritische applicaties voor onze klanten uit de transport en logistieke sector. Zonder deze sector worden onze pakketjes niet op tijd afgeleverd, rijden de treinen niet meer van a naar b en varen schepen niet veilig de haven binnen. Om deze transport en logistieke ketens te

Bekijk vacature »

New Business Developer ICT - Noord-Holland - &euro

Wat ga je doen? Als New Business Developer ICT ben jij de verbindende schakel tussen je werkgever en nieuwe klanten. De diensten die jij aan te bieden hebt variëren van klant tot klant. Je helpt je klanten met het vinden van de juiste oplossingen voor hun vraagstukken in de Logistiek dmv een prachtige software tool. Juist deze oplossingen die jij je klanten aan kan bieden zijn uniek omdat alles volledig aangepast kan worden naar de vraag van de klanten. De focus ligt niet op het waarmaken van de klantverwachtingen, je wordt verwacht om altijd te streven naar het overtreffen van

Bekijk vacature »

New Business Developer IT

Ben jij het zat om alle KvK-lijsten volledig af te bellen? Komt de koffie van die ene persoon waar je nog steeds geen deal hebt gesloten je neus uit? En blijf je potentiële klanten stalken zonder resultaat? Dan is het tijd om het anders te gaan doen! Neem afscheid van de standaard salesaanpak en ga bij PEAK-IT aan de slag met onze unieke en eigenwijze salesstrategie! Word onze New Business Developer IT in Naarden, Rijswijk of Eindhoven die niet bang is om het anders te doen! Hoe maak jij onze klanten blij? Dankzij jou hoeven onze klanten niet bang te

Bekijk vacature »

Software Developer / full-stack

Bedrijfsomschrijving Voor een organisatie binnen de zakelijke dienstverlening zijn wij op zoek naar een Software Developer met goede kennis van zowel Java als front-end technieken als Angular. Het betreft een organisatie bestaande uit ongeveer 100 mensen die klaar staan voor ruim twee duizend klanten. De organisatie staat bekend om het feit dat zij met hun kwalitatief goede dienst een van de snelste zijn. Dit valt op in de markt en dit bewerkstelligen zij door alles zoveel mogelijk te automatiseren. IT, en software development in het bijzonder, wordt als erg belangrijk gezien. Het complexe applicatie landschap is geheel maatwerk en geschreven

Bekijk vacature »

Medior PHP Developer

As a PHP Developer at Coolblue, you ensure that our webshops work as optimal as possible. How do I become a Medior PHP Developer at Coolblue? As a PHP Developer you work together with other development teams to make our webshop work as optimal as possible and to make our customers happy. Although you are a PHP Developer, you are not averse to a little C# or JavaScript. Would you also like to become a PHP Developer at Coolblue? Read below if the job suits you.” You enjoy doing this Writing PHP code, but can also find your way in

Bekijk vacature »

Synon applicatie ontwikkelaar

Voor ons hoofdkantoor in Waalwijk zoeken wij een Synon applicatie ontwikkelaar. Als Synon applicatie ontwikkelaar lever je een belangrijke bijdrage aan de automatisering en digitalisering van onze primaire bedrijfsprocessen. Als Synon applicatie ontwikkelaar lever je een belangrijke bijdrage aan de automatisering en digitalisering van onze primaire bedrijfsprocessen. In elke fase van de verdere digitalisering van ons bedrijf lever jij een coördinerende en uitvoerende bijdrage! DMG, een huis vol mogelijkheden. Je bent een belangrijke speler in het analyseren en ontwikkelen van functionaliteit op ons ERP systeem. Onze ERP applicatie is een solide basis voor de belangrijke primaire processen binnen DMG. Het

Bekijk vacature »

.Net / C# Developer - Banking

When .Net/C# is your passion, apply now and join our team! Your day-to-day activities As an experienced .Net/C# developer you will use your skillset to develop new financial applications and services that are not fully automated by standard systems. You will ensure quality and security in ASP.Net and C#. You will work in a multidisciplinary Scrum/Agile team and together you will ensure that the transition to Cloud will go as smoothly as possible. What you need to be successful in this role You are customer focused and enthusiastic. You are at the forefront of architectures, tools and techniques that are

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

13/05/2021 18:39:34
 
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
 

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.