file_put_contents, stabieler?

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Embedded Software Developer Games

Functie omschrijving Heb jij affiniteit met hardware en wil jij kleuren binnen een Qt framework? Spreek jij de talen C en of C ++? Dan ben ik wellicht opzoek naar jou! Voor een super gave opdrachtgever in omgeving Delft is er namelijk plek voor een nieuwe kracht! Dit bedrijf is gespecialiseerd in het ontwerpen van software voor een unieke game industrie. Wil jij betrokken worden bij een proces dat loopt van ontwikkeling tot installatie? Waarbij je bezig zult zijn met perfecte systemen die geleverd worden aan binnen en buitenland? Je zult in een team, samen met vier ontwikkelaars, de mooiste

Bekijk vacature »

Gezocht: .Net ontwikkelaars met een maatschappelij

Bedrijfsomschrijving Zoek jij als medior .Net ontwikkelaar een inspirerende werkplek bij een bedrijf met maatschappelijk verantwoordelijkheidsgevoel? Dan is deze vacature je op het lijf geschreven. De organisatie bestaat ruim 20 jaar en ze ontwikkelen in house applicaties waarmee de zorgsector enorm mee gebaat is. Jouw applicaties worden gebruikt door duizenden gebruikers waardoor je echt een waardevolle bijdrage kan leveren aan de maatschappij. Het bedrijf is zeer innovatief en vindt een goede werk/privé balans belangrijk. Je krijgt alle mogelijkheden om jezelf verder te ontwikkelen, je werktijden in te delen en daarnaast is het ook mogelijk om deels thuis te werken. Het

Bekijk vacature »

Fullstack Webdeveloper .NET Azure Big Data SaaS

Bedrijfsomschrijving Deze klant van ons is recentelijk onderdeel geworden van een grote moederorganisatie, ze zijn dé partij als het gaat om software maken voor ambitieuze ondernemers, ze maken maatwerk software. Vanuit het fantastisch vormgegeven hightech gebouw te Rotterdam centrum werken ze met zo'n 40 medewerkers aan hoogwaardige software gericht op financiële data, betaalinformatie, maar ook backoffice software. De software wordt webbased, desktop en mobile aangeboden en er worden zeer moderne ontwikkeltechnieken toegepast. Je moet dan denken aan patroonherkenning, Big Data, Machine Learning en OCR. Als Developer, ongeacht je niveau, ga je hier te maken krijgen met de allerleukste kant van

Bekijk vacature »

Junior .NET developer

Functie Als junior .NET ontwikkelaar start jij in ons development team met twee andere .NET developers. Als team werken jullie in scrum en is er iedere ochtend om 11.00 een standup. Jij krijgt als junior .NET ontwikkelaar een inwerk traject dat echt specifiek wordt ingericht op basis van wat jij nodig hebt. Een van de grootste pluspunten bij ons is dat wij binnen ons bedrijf veel (technische) vrijheid geven en juist eigen initiatieven erg stimuleren. Jouw werkzaamheden gaan er bij ons als volgt uit zien: – Het ontwikkelen van nieuwe software samen met interne en eventueel externe ontwikkelaars; – Het

Bekijk vacature »

Database Developer

Functie omschrijving Voor een logistieke dienstverlener in omgeving Zuid Beijerland zijn wij op zoek naar versterking. Weet jij als geen ander systemen aan elkaar te koppelen en heb jij goede kennis van SQL en UML, lees dan snel verder! Jouw taken zien er als volgt uit: Je bent in deze rol voornamelijk verantwoordelijk voor het bouwen, implementeren en beheren van koppelingen tussen de bestaande systemen (zowel business 2 business als application 2 application). Daarnaast inventariseer je de wensen van in- en externe klanten, die je vervolgens samen met je collega's, vertaalt naar technische specificaties, die jullie zelf ontwikkelen en implementeren.

Bekijk vacature »

Full Stack Developer/ Applicatie Ontwikkelaar

Wat jij doet Als Applicatie Ontwikkelaar ben je onderdeel van het team die de Rimote omgeving ontwikkeld en onderhoud. Hierbij kan je denk aan de cloud, on premise en webapplicaties welke worden gebruikt in bijvoorbeeld industriële bakkerijen, biogasinstallaties en kwekerijen. Deze applicaties verzorgen (remote) de aansturing en monitoring van processen, machines en robots. Van a tot z ben je betrokken bij projecten. Dit betekent vanaf ontwerp tot oplevering. Je moet samen met jouw team een goed product neer zetten. Dit begint met het opzetten van het ontwerp. De basis van de software moet staan als een huis. Daarvoor moet jij

Bekijk vacature »

Full stack developer Node.js

Functie Als fullstack JavaScript developer vind jij het uitdagend om op basis van concrete klantvragen nieuwe functionaliteiten te ontwikkelen. Bij voorkeur worden deze functionaliteiten op een bepaalde manier geprogrammeerd, zodat ze door meerdere klanten te gebruiken zijn. Je hebt dus vaak te maken met abstracte vraagstukken. Om dit te kunnen realiseren sta je nauw in contact met de product owner en/of klant. Je bent niet alleen onderdeel van het development team, maar hebt ook vaak contact met de product-owner en/of klanten om daardoor inzichten te verzamelen die leiden tot productverbeteringen. • Inzichten verzamelen bij de klant en/of product owner •

Bekijk vacature »

SQL Developer

Functie omschrijving We are looking for a dutch native speaker Jij gaat in deze functie aan de slag met uitdagende projecten en het creëren van maatwerk software, vooral middels SQL. Iedere klant/project is weer anders, maar dat maakt dit bedrijf en de functie erg uniek & uitdagend. Verder heb je de volgende taken: Ontwikkelen en ontwerpen van SQL databases. T-SQL wordt hierbij gebruikt als programmeer laag; Optimalisatie van query's, voor een verbeterde efficiency; Begeleiden van junior developers, mits je dit leuk vindt; Heb je meer interesse in een rol als consultant, dan is dit ook mogelijk. Je heb hier meer

Bekijk vacature »

Medior Java developer

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 »

Junior .NET Software Developer

Dit ga je doen Software development met behulp van C# .NET en / of PHP, je mag zelf kiezen waar jij je in wil specialiseren Meedenken over het nieuwe pakket, waar moet het aan voldoen? Unit-, integratie- en diverse andere tests schrijven en uitvoeren Nauw samenwerken met je IT collega's zoals Testers, Developers, DevOps Specialisten en Architecten Jezelf ontwikkelen met behulp van trainingen en cursussen Hier ga je werken Onze klant, een grote speler in de medische sector, is op zoek naar een enthousiaste junior (of meer ervaren) Software Developer die klaar is voor een nieuwe stap in zijn of

Bekijk vacature »

Senior Lead Front End Developer

Functieomschrijving Voor Stichting Waternet zijn wij op zoek naar een senior Lead Front End Developer. Binnen het DevOps team Online zijn we op zoek naar een Senior Lead Front End developer met kennis van toegankelijkheid. Deze developer zal zich bezighouden met development van webpaginas die in verbinding staan met systemen uit het back office. Taken Ontwerpen, ontwikkelen, implementeren, documenteren en beheren van webapplicaties in een Azure-omgeving Debuggen, analyseren en oplossen van problemen in de OTAPomgevingen Je participeert in het DevOpsTeam Online voor het verder uitwerken en implementeren van gebruikerswensen Je bent betrokken bij toegankelijkheid audits en het implementeren van WCAG

Bekijk vacature »

Junior .NET developer

Functie Als junior .NET developer begint jouw dag na een bak koffie met een stand up. De vorderingen worden tijdens de stand up besproken en de doelen worden opgesteld waar jullie als team in de volgende sprint naartoe gaan werken. Onze backend is geschreven in .NET Core en onze Front-end in Angular. Bij ons ga jij dan ook Fullstack aan de slag. Jij wordt hier opgeleid om zelfstandig te kunnen programmeren en applicaties te kunnen implementeren. Er wordt op projectbasis gewerkt, dit bied leuke uitdagingen omdat elke klant een andere visie heeft over de applicatie die wij maken. Je gaat

Bekijk vacature »

Back-end developer (Magento2)

Functie E-commerce is een ‘’snelle’’ wereld. Om hierin continu voorop te blijven omarmen ze in een vroeg stadium nieuwe technieken. Een webshop is nooit af en kan altijd beter, sneller en efficiënter. Tegelijkertijd hebben ze vanaf hun oprichting altijd vastgehouden aan kwaliteit boven snelheid, en dit loont. Als back-end developer fungeer je als het verlengstuk van hun klanten. Technisch complexe zaken pak je met liefde op, en hierin werk je samen met o.a. front-end developers en designers. Klanten verwacht hierin kwaliteit van het hoogste niveau en een proactieve, meedenkende rol bij het maken van zowel technische als strategische keuzes. Ga

Bekijk vacature »

Back-end Software Developer

Functie omschrijving Ben jij op zoek naar een uitdagende development functie bij een klein gespecialiseerd softwarebedrijf? Wil jij graag hybride werken (combi tussen thuis + kantoor), loop jij warm voor maatwerk software en voel jij je prettig in een informele cultuur? Zoek dan niet verder! Reageer direct! Voor een gewilde werkgever in omgeving Tilburg zoeken wij een back-end software developer met een aantal jaar werkervaring. Je gaat werken voor een klein softwarebedrijf dat gespecialiseerd is in de ontwikkeling van integratiesoftware. Jouw werkzaamheden zien er als volgt uit: In een klein team met 4 ontwikkelaars houd jij je bezig met afwisselende

Bekijk vacature »

Java Developer (Training And Simulation)

Wat jij doet Je zou onze Java Developer zijn en nauw samenwerken met je Product Owner, Software System Engineer, Scrum Master en andere Developers. Samen draag je bij aan een multidisciplinair en zelf organiserend Agile team. De rol is zeer afwisselend en bestaat uit, maar is zeker niet beperkt tot: de-risk en prototype onbewezen simulatietechnologieën; simulatiekaders ontwikkelen voor gebruik door andere teams; je bent goed in het begrijpen van ingewikkelde ideeën; heeft de mogelijkheid om nauw samen te werken met grote internationale klanten, leveranciers en overheden om onze oplossingen, vastleggingsvereisten, enz. te definiëren en te presenteren. Ben jij het? Wij

Bekijk vacature »
Niek Ha

Niek Ha

26/11/2008 13:51:00
Quote Anchor link
Goedemiddag,

Ik had een vraag over file_put_contents, of eigenlijk niet specifiek die functie maar het checken / beveiligen ervan.

Alles werkt perfect wat ik in mijn script heb staan. Maar weten jullie hoe ik het beter kan doen zodat het veiliger / stabieler is.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
<?php
    function schrijven()
        {

            $inhoud = $this->rij_kolommen . $this->rij_inhoud;
            file_put_contents($this->bestand, $inhoud);
            chmod($this->bestand, 0777);
        }

?>
 
PHP hulp

PHP hulp

26/05/2026 14:33:45
 
Jelmer -

Jelmer -

26/11/2008 14:14:00
Quote Anchor link
Wat doet het? Iets in een bestand zetten, wat wil je daar veiliger aan hebben?

Ik gok dat dit stukje een onderdeel is van een script dat een database-tabel in een CSV-bestand zet. In dat geval zou ik juist niet voor file_get_contents kiezen, omdat die juist geschikt is om alles wat in het geheugen zit in één keer in een bestand te schrijven. Stel dat je een boel data in je database hebt zitten, dan moet die eerst allemaal in zijn geheel in het geheugen. Er is een redelijke kans dat dat op een gegeven moment niet meer past.

Juist hier kan je goed de "oude" functies gebruiken die naar een stream schrijven. Streams zijn trouwens relatief nieuw in PHP, maar zijn gemodelleerd op het oude fopen & fwrite systeem, juist omdat dit bestwel efficiënt is.

Je opent een maal een pointer naar een bestand, en vult het vervolgens met fwrite op. Je hoeft op zich maar een heel klein beetje in je geheugen te hebben, bijvoorbeeld 1 regel uit je db, want direct nadat je fwrite hebt aangeroepen is het klaar, en staat het in het bestand.

(op de achtergrond zijn er nog allemaal caches in je besturingssysteem, de driver en de harde schijf zelf waardoor het niet helemaal waar is, maar daar hoef je je geen zorgen om te maken.)

Één nadeel ten opzichte van file_put_contents is dat wanneer je tijdens het lezen & schrijven van de regels een fout tegenkomt, je met een half af bestand zit. Zeker wanneer je een eerder bestand vervangt met in dit geval een slechte kopie is dat vervelend. In jouw voorbeeld zou als het goed is file_put_contents dan niet eens meer aangeroepen worden, omdat dat pas de laatste stap is. Maar ook dit probleem is makkelijk te verhelpen door niet te schrijven naar het definitieve bestand, maar naar een tijdelijk bestand. Is al het schrijven dan klaar en succesvol, dan pas gooi je het oude bestand weg en verplaats (hernoem) je het nieuwe naar zijn definitieve naam.
 
Niek Ha

Niek Ha

26/11/2008 14:53:00
Quote Anchor link
Ja sorry dat ik niet duidelijk was in de beschrijving.
Ik wil inderdaad uit een database gegevens halen en deze in een .csv file zetten. Inprincipe maakt het niet uit wat voor file het word. het kan ook makkelijk .txt zijn, maar in dit geval gaat het om een .csv file.
Het is inderdaad een onderdeel uit een script wat ik gemaakt heb.

Ik ben wel thuis met fopen, fwrite, fputs enzo maar file_put_contents werd door iemand aangeraden. Waarom weet ik niet dat zal ik ooit nog wel eens horen. Ik ben er mee aan de gang gegaan maar het lijkt te makkelijk om iets in een bestandje te zetten. Geen checks? Geen foutafhandeling?

file_put_contents($this->bestand, $inhoud);

Ik dacht dat er misschien wel iets was om eventuele fouten die er kunnen komen (omdat er iets niet goed is ingevoerd door een latere gebruikt) te beveiligen.
 
Jelmer -

Jelmer -

26/11/2008 15:15:00
Quote Anchor link
file_put_contents is "perfect". Het zet gewoon $inhoud in $this->bestand. Intern gebruikt het de stream-functies van PHP. Er zijn geen magic karakters, en volgens mij zal hij ook niet snel zeuren over nullbytes. Al het onveilige wat in $inhoud staat, zal ook in het bestand terecht komen. Bevat $inhoud bijvoorbeeld PHP-code, en is er een mogelijkheid om het bestand uit te voeren dan kan die code worden uitgevoerd. (bijvoorbeeld een "lek" include-statement of de bestandsnaam bevat .php en is aanroepbaar van buitenaf)

Verder zit er geen extra beveiliging in file_put_contents. Is de schijf vol tijdens het schrijven van het bestand? Dan houdt hij er mee op. De al geschreven bytes staan dan in het bestand, en dat draait hij niet terug. Hij zal dan FALSE teruggeven (als ik de broncode van PHP lees tenminste, de documentatie zegt dat hij een INT teruggeeft)

Trouwens wel handig om gewoon eens de broncode van PHP te downloaden. Dan kan je vrij gemakkelijk goed uitzoeken wat interne functies nu werkelijk doen. PHP is geschreven in alleen C, dus als je PHP snapt snap je de broncode van PHP zelf ook grotendeels wel.
Gewijzigd op 01/01/1970 01:00:00 door Jelmer -
 
Niek Ha

Niek Ha

26/11/2008 15:20:00
Quote Anchor link
Ok bedankt, dan ga ik het wel zo laten staan. Een functie maken om te kijken of er te weinig ruimte over is lijkt me dan ook wat te ver gaan. Bij het script wat ik gebruik overschrijft hij namelijk het oude bestand. Niet dat zo groot gaat worden dat je geen space meer hebt xP. Maarja................. het kan
 



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.