valideren csv input

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Cobol Programmeur Ontwerper

Bedrijfsomschrijving Voor een bekende overheidsinstelling in regio Den Haag zijn wij opzoek naar een tijdelijke Cobol programmeur. Je zal verantwoordelijk zijn voor het ontwikkelen en onderhouden van de Cobol applicatie omgeving. Maar ook het ontwikkelen en bouwen van applicaties in de web-omgeving behoort tot jouw taken en verantwoordelijkheden. Je denkt mee met de organisatie en achterhaald bij de gebruikers welke wensen er nog zijn. Functieomschrijving Ben jij een Cobol programmeur en zoek je een toffe vaste baan? Wil je werken bij een hele bekende overheidsinstelling in Den Haag? Heb je naast ontwikkelen ervaring met ontwerpen en verbeteren van Cobol omgevingen?

Bekijk vacature »

Microsoft 365 Engineer Welkomstbonus € 5.000,

Microsoft 365 Engineer senior Welkomstbonus van € 5.000,- Bij T2 zorgen we goed voor elkaar en doen wij leuke dingen met leuke mensen. We zorgen voor uitdagende opdrachten zodat jij jezelf onbeperkt kan blijven ontwikkelen. Ben jij een ervaren systeembeheerder Microsoft 365 en wil je het beste uit jezelf halen? Dan ben je van harte welkom bij T2 en ontvang je onze welkomstbonus ter waarde van € 5.000,-. Er werken leuke mensen bij T2, die op een professionele en informele wijze met hun carrière en collega’s omgaan. Dat is de basis voor succes! Het is vanzelfsprekend dat je met de

Bekijk vacature »

High Tech Software Developer (C#.NET)

(Senior) High Tech Software Developer (C#.NET) (C#/ .NET. / WPF/Prism. Winform/CAB, WCF) Intro Are you a Software Professional and do you have experience in developing software in an object-oriented way using C#/ .NET? And do you have profound knowledge of full system software development from the embedded platform up-to the operator facing applications. Then I have the perfect position for you! For our client, a fast-dynamic technical company, we are looking for several Senior Software Developers (C#.NET). You will be part of the Software team, You will be end-to-end responsible for realization of software in C# in the software department,

Bekijk vacature »

New business developer

You will start working as new business developer for the German, Swiss and Austrian market. You will receive a direct contract from the company. It is a fulltime job for 35 hours a week. Salary is based on previous experience. What we offer Salary based on experience Contract from company itself Who you are Do you recognize yourself in the following? You have at least a Bachelor degree in marketing Experience in a similar position Native speaker in German Excellent analytical and research skills Pro-active and result minded with teamwork skills What will you do You will start working as

Bekijk vacature »

Software Developer C#

Organization Within business line Applications, software groups address the area of complex machine control software. You will be end-to-end responsible for realization of software in C# . This is done using a scrum/Agile way of working. As a Software Developer you will act as fast learning software professional, and contribute to software realization using a disciplined agile/scrum based way of working. You apply software engineering practices such as requirements engineering (user story definition), object oriented analysis and design, implementation in C#, testing, and integration. You are eager to pick up knowledge on semiconductor fab automation and throughput models. What are

Bekijk vacature »

Senior fullstack .NET developer

Wil jij samen met gemotiveerde en slimme collega’s bouwen aan ons geavanceerde landschap in Azure? En vind je het ook nog eens leuk om jouw kennis te delen met junior- en medior devs? Dan heb je wellicht interesse in de positie van: Senior fullstack .NET developer voor ons kantoor in Alkmaar Over de positie: Bij SnelStart werken we in een AGILE-structuur om de productie meer focus en impact te geven. Met je collega’s kom je tot de beste resultaten door onderlinge discussie, goede refinement sessies, reviews en écht teamwork. Je hebt de vrijheid om de dingen te doen zoals jij

Bekijk vacature »

Full Stack SAP Developer

Discipline Information Technology Location Venlo (NL) Hours a week 40 Full Stack SAP Developer vidaXL is a rapidly growing international organization where IT plays a key part. SAP is a crucial component of vidaXL’s extensive IT landscape. In order to maintain continuous growth and improvement of processes we are looking for an enthusiastic Full Stack SAP Developer. This role focuses mainly on developing, managing and optimizing new and existing processes based on SAP technologies. In addition, we expect our SAP Developer to function as a back-up and a sparring partner for a team of 5+ SAP Developers. You will be

Bekijk vacature »

Medior PHP Developer

Bedrijfsomschrijving De organisatie is een marktleider op het gebied van Software ontwikkeling omtrent medewerker applicaties. Hiermee helpen ze klanten met het optimaliseren van bedrijfsprocessen en verduurzamen van de bedrijfsvoering. Innovatie en ontwikkeling staat daarom dan ook hoog in het vaandel. Je collega's hebben een open, informele werksfeer gecreëerd waar de dialoog altijd kan worden aangegaan. Als PHP developer ga je aan de slag met het realiseren van web applicaties on-premise en in de Cloud. Je schrijft innovatieve, maar ook robuuste codes en houdt hierbij rekening met Security aspecten. De code die je schrijft en de koppelingen die jij realiseert hebben

Bekijk vacature »

Senior fullstack .NET developer

Wil jij samen met gemotiveerde en slimme collega’s bouwen aan ons geavanceerde landschap in Azure? En vind je het ook nog eens leuk om jouw kennis te delen met junior- en medior devs? Dan heb je wellicht interesse in de positie van: Senior fullstack .NET developer voor ons kantoor in Alkmaar Over de positie: Bij SnelStart werken we in een AGILE-structuur om de productie meer focus en impact te geven. Met je collega’s kom je tot de beste resultaten door onderlinge discussie, goede refinement sessies, reviews en écht teamwork. Je hebt de vrijheid om de dingen te doen zoals jij

Bekijk vacature »

Medior Front-end Developer

As a medior Front-End Developer at Coolblue you improve the user-friendliness of our webshop for millions of customers. How do I become a Medior Front-end Developer at Coolblue? As a Medior Front-end Developer you work on the user-friendliness of our webshop for millions of customers. You enjoy working with the UX 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. "Want to become a Medior Front-end Developer at Coolblue? Else de Boer explains how to

Bekijk vacature »

Senior fullstack .NET developer

Wil jij samen met gemotiveerde en slimme collega’s bouwen aan ons geavanceerde landschap in Azure? En vind je het ook nog eens leuk om jouw kennis te delen met junior- en medior devs? Dan heb je wellicht interesse in de positie van: Senior fullstack .NET developer voor ons kantoor in Alkmaar Over de positie: Bij SnelStart werken we in een AGILE-structuur om de productie meer focus en impact te geven. Met je collega’s kom je tot de beste resultaten door onderlinge discussie, goede refinement sessies, reviews en écht teamwork. Je hebt de vrijheid om de dingen te doen zoals jij

Bekijk vacature »

Web Developer (m/w/d)

Web Developer Location: Heidelberg, Germany Staff category: Staff Member Job type: IT and Infrastructure Contract duration: 3 years (renewable) Grading: 6, 7 or 8; depending on experience (monthly salary starting from 3.7k€ up to 4.8k€ after tax, plus other benefits) Closing date: 1 February 2021 Reference number: HD01905 IT Services operates and supports the IT infrastructure and services at EMBL headquarters in Heidelberg and at the laboratory’s sites in Barcelona and Rome. In collaboration with the EMBL-EBI in Cambridge our team is creating and implementing a new web infrastructure for all EMBL websites. We are looking to recruit an enthusiastic

Bekijk vacature »

Software Solution Architect - Overheid

Software Solution Architect - Overheid Functiebeschrijving: Kom jij ons team helpen bij het ontwerpen en ontwikkelen van moderne, heldere en realiseerbare architecturen voor grote, complexe omgevingen bij onze klanten binnen de Nederlandse overheid? Meer weten? Bel of Whatsapp met Aad van Kempen via 06 10040513! Wat ga je doen? In jouw rol als Software Solution Architect breng je de Nederlandse overheid via CGI naar het nieuwe digitale tijdperk met de beste ICT-infrastructuur. Hoe? Als aanspreekpunt, adviseur en hoeder voor de inrichting van het IT-landschap. Je realiseert efficiënt de IT-toepassingen, operationeel en strategisch. Waarom? Alleen het beste is goed genoeg. Daarom

Bekijk vacature »

Java Developer met Kafka projecten

Bedrijfsomschrijving De organisatie is een IT dienstverlener die bedrijven helpt met het oplossen van hun technische vraagstukken. De organisatie streeft naar langdurige klantrelaties waardoor ze een heel divers klantenportefeuille hebben opgebouwd. De organisatie is een middelgrote organisatie en telt op dit moment zo’n 60 medewerkers. Maar ze zijn nog altijd groeiende, mede omdat ze op het gebied van Data Analytics echt een voorsprong hebben op hun concurrenten. Het team is een gezonde mix van jong en oud die elkaar samen naar een hoger niveau tillen. Ze hechten bij deze organisatie waarde aan teambuilding, klantgerichtheid en een open en fijne werksfeer.

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 »
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

25/01/2021 09:10:19
 
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.