valideren csv input

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

C# .NET Developer

Functie omschrijving Wij zijn op zoek naar een C# .NET Developer voor een bedrijf in de omgeving van Utrecht! Wil jij werken voor een internationaal bedrijf waar je legio mogelijkheden krijgt als Software Ontwikkelaar? Grijp nu je kans! Je kunt een uitdagende rol gaan vervullen als C#.NET Developer binnen een internationaal bedrijf dat gevestigd is in omgeving van Utrecht. Je zult gaan samenwerken met collega's die over de hele wereld verspreid zitten. Dit bedrijf is zeer vooruitstrevend en werkt met de nieuwste technieken. Als C#.NET Developer ga jij je bezig houden met het volgende: Je blijft op de hoogte van

Bekijk vacature »

Java developer - procesoptimalisatie (Inhouse)

Functie Wat ga je doen als Java developer? Jij als back end developer hebt al enige ervaring opgedaan in jouw vakgebied. Voornamelijk het werken met Java en Spring spreekt jou aan. Jij wordt samen met je collega developers in het team verantwoordelijk voor de gehele back end van de applicatie. Hierdoor heb jij veel zelfstandigheid in je rol en zul je ook zelf beslissingen samen met de PO maken. Er wordt gewerkt volgens de SCRUM methodiek, om zo structuur te creëren in de werkzaamheden. Binnen de 2-wekelijkse sprints pak jij je taken op die samen met de PO afgestemd zijn.

Bekijk vacature »

BizTalk/ Azure Developer

Dit ga je doen •Understanding the scope of required functionality, translate them within context of way of working of the team into developed solutions, whilst safeguarding documentation; •Planning based on assigned sprint tasks; •Acting as an expert in estimation techniques and planning; •Understanding your role in the agile process and act in this way; •Facilitating internal communication and effective collaboration; •Working closely with scrum master to handle backlogs and new requests; •Providing information to the third parties about activities and needs for compliance. Hier ga je werken Our client is a leading organization focusing on animal nutrition, offering solutions that

Bekijk vacature »

Back end developer

Functie Jij als full stack ontwikkelaar komt te werken in een team bestaande uit 4 back end programmeurs, 2 vormgevers/ Front end developers en een online marketeer. Qua persoonlijkheden is het team erg gevarieerd van sportfanaten tot gameliefhebbers en Golfers. Een ding heeft iedereen hier gemeen; Passie voor goede code. In jouw rol zul je voor 90% van je tijd je bezig houden met het ontwikkelen van grote maatwerk applicaties. Daarnaast hebben wij op aanvraag ook wel eens een website of onderhoudsklusje, die opgepakt moet worden en hier ben jij ook niet vies van. De technische uitdaging momenteel is dat

Bekijk vacature »

Back end developer PHP

Functie Heb jij altijd al eens bij een bedrijf willen werken waar jij géén nummertje bent, die alleen maar uitvoerend werk doet? Dan zou je hier perfect passen! Tuurlijk, je werkt aan projecten voor grote of kleine bedrijven… Het enige verschil hier is, jouw mening telt hier écht. Jouw inbreng wordt gewaardeerd, serieus genomen en gebruikt. En vergeet niet, je werkt niet alleen aan deze projecten. Er werken in totaal ruim 25 developers en designers, onderverdeeld over 3 development teams. Voornamelijk bestaande uit Medior en Senior developers, die samen voor een inspirerende en ambitieuze omgeving zorgen. Hun visie is namelijk

Bekijk vacature »

Traineeship Front-end developer (WO, 0 tot 3 jaar

Functie Zoals beschreven ga je vanaf start aan de slag bij een passende opdrachtgever, hierbij kijken ze echt naar jouw wensen, kennis/ervaring maar ook de reisafstand. Momenteel hebben ze meerdere klanten waarbij ze groepen hebben opgezet wat maakt dat er diverse uitdagende kansen liggen. Naast het werken bij de opdrachtgever, en het volgen van de masterclasses, zul je regelmatig met de andere trainees in contact zijn. Niet alleen op professioneel vlak maar juist ook bij de borrels en kwartaaluitjes! Kortom; een jaar lang hard aan jezelf werken in combinatie met gezelligheid en plezier. Spreek dit jou aan? Dan komen we

Bekijk vacature »

Dynamische Oracle/APEX Ontwikkelaar in de logistie

Bedrijfsomschrijving De organisatie in de regio Rotterdam is gespecialiseerd in het ontwikkelen van moderne webbased software voor de ERP branche. In totaal is er 20FTE aan specialisten actief binnen de organisatie. De ICT afdeling bestaat momenteel uit 15FTE. Ze groeien ontzettend hard en daarom zoeken zij een Oracle/APEX Developer die het reeds sterke team nog sterker komt maken. Hier werken ze op projectbasis voor verschillende grote organisaties in de logistieke sector. Het is een informele organisatie waarbinnen een fijne werksfeer heerst. Zoals aangegeven willen ze het team nog sterker maken en daarvoor zoeken ze bij voorkeur medior of senior Oracle/APEX

Bekijk vacature »

Fullstack Developer TOTO

Do you want to work with the latest technologies on the development of new systems and applications? Get moving and strengthen Nederlandse Loterij as a Fullstack Developer TOTO. Thanks to your efforts, complex business critical applications are always running smoothly. In this way, you directly contribute to a happy, healthy and sporty Netherlands. As a Fullstack Developer you score by: Taking ownership of the development cycle of an application in a large scale, high availability, geo redundant landscape Coaching your peer developers and safeguarding code quality Integrating the application with other components of the system using the available API’s Managing

Bekijk vacature »

PHP Developer

Functie Middels Scrum en sprints bouw jij in deze functie mee aan complexe webapplicaties en ons SaaS platform. Hierbij hoort ook architectuur tot een van je taken. Daarnaast ben je één van de leden van het Scrum team. Dat betekent dat je naast je kerntaken ook in contact staat met de product owner. Oftewel, je bent bij het gehele ontwikkelproces betrokken. Tools die hierbij gebruikt worden zijn o.a. PHP, Symfony en Git. Eisen • Minimaal HBO werk- en denkniveau • Minimaal 3 jaar aantoonbare ervaring met PHP • Kennis en ervaring Symfony (Laravel is pré) & Lando • Kennis van

Bekijk vacature »

Medior Java developer (fullstack)

Wat je gaat doen: Of beter nog, wat wil jij doen? Binnen DPA GEOS zijn we dan ook op zoek naar enthousiaste Java developers om ons development team te versterken. Als Java developer werk je in Agile/Scrum teams bij onze klanten en daarbij kun je eventueel ook andere ontwikkelaars begeleiden in het softwareontwikkelproces. Verder draag je positief bij aan de teamgeest binnen een projectteam en je kijkt verder dan je eigen rol. Je gaat software maken voor verschillende opdrachtgevers in jouw regio. Je bent een professional die het IT-vak serieus neemt en kwaliteit levert. Je leert snel vanwege je diepgaande

Bekijk vacature »

.NET Developer gezocht!

Functie omschrijving Wij zijn op zoek naar een .NET Developer! Wil jij werken voor een internationaal bedrijf waar je legio mogelijkheden krijgt als Software Ontwikkelaar? Grijp nu je kans en kijk snel of jouw vaardigheden aansluiten bij onderstaand profiel! Je kunt een uitdagende rol gaan vervullen als .NET Developer binnen een internationaal bedrijf dat gevestigd is in omgeving Bergen. Dit bedrijf is zeer vooruitstrevend en verricht betekenisvol werk. Binnen dit bedrijf wordt gewerkt aan de productie en ontwikkeling van medische middelen. Als .NET Developer ga jij je bezig houden met het volgende: Je wordt betrokken bij alle fasen van software

Bekijk vacature »

Laravel / PHP developer

Functie omschrijving Wij zijn op zoek naar een Medior PHP / Laravel Developer voor een IT-consultancy in de omgeving van Hoofddorp! Ben jij op zoek naar een leuke nieuwe uitdaging binnen een veelzijdige werkomgeving? Lees dan snel verder! Binnen dit bedrijf werk je in een ontwikkelteam, waarin je zeer betrokken bent en meedenkt over softwareoplossingen. Binnen dit Team hou je je bezig met het aanpassen, verbeteren en vernieuwen van de logistieke oplossingen. Je zult je bezig houden met de volgende werkzaamheden: Je gaat aan de hand van de wensen van klanten software ontwikkelen; Je bent bij het gehele proces betrokken;

Bekijk vacature »

Lead Webdeveloper

Als Lead webdeveloper bij KUBUS ben je verantwoordelijk voor het implementatie design van requirements en de software architectuur van de webapplicatie en services van BIMcollab. In je rol als lead developer zoek je als vanzelf op een creatieve manier naar het optimum tussen benodigde implementatie-tijd, de performance van de applicatie en een snelle go-to-market van features, aansluitend bij onze geautomatiseerde test- en release train. Hierbij bewaak je in samenwerking met de andere senior ontwikkelaars in je team de architectuur van de applicatie en adviseer je de product owner over noodzakelijke refactoring om de onderhoudbaarheid van het platform te verbeteren. Ons

Bekijk vacature »

Software Developer C# .NET

Functie omschrijving Software Developer C# .NET gezocht voor een dynamische organisatie! Ben jij net afgestudeerd of toe aan een volgende stap in je maatschappelijke carrière? Lees dan snel verder! Wij zijn op zoek naar een Software Developer die klaar is voor een nieuwe uitdaging en die een organisatie in de regio Houten wil versterken. Je werkt in deze functie aan verschillende projecten en gaat vaak op bezoek bij klanten. In deze functie kun je een grote mate van uitdaging, diversiteit en verantwoordelijkheid verwachten. Bedrijfsprofiel Waar kom je te werken? Je komt te werken bij een organisatie dat gespecialiseerd is in

Bekijk vacature »

Traineeship Full Stack Java developer

Dit ga je doen Start jij op 7 augustus bij de Experis Academy dan kickstart jij jouw IT-carrière! We leiden je op tot een gewilde Full Stack Java Developer met alle kennis en vaardigheden die nodig zijn om de arbeidsmarkt te betreden. Wat kun je verwachten, hoe zit een dag in het leven van een Trainee eruit? Periode 1 Als Full Stack Java Developer Trainee volg je vanuit huis een op maat gemaakte onlinetraining die in het Engels wordt gegeven. De tijd die je kwijt bent aan het volgen van de training kun je vergelijken met een fulltime werkweek. In

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

29/03/2024 02:34:44
 
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.