Ja, heb volledige shell toegang als root dus dat is niet het probleemquote:Op donderdag 7 januari 2010 23:15 schreef Tuvai.net het volgende:
Voor herhalende / automatische handelingen, zou ik om te beginnen eens kijken naar cronjobs.En of je daar überhaupt de mogelijkheid voor hebt natuurlijk.
Ik heb ook zoiets gemaakt, daarbij zet ik de instellingen op de default waarde en geef ik een preview van het bestand na het inlezen. Als het niet goed is kan je de defaultinstellingen wijzigen en het nog een keer proberen...quote:Op donderdag 7 januari 2010 16:40 schreef Intrepidity het volgende:
Ik ben bezig met het schrijven van een kleine wrapperklasse om fgetcsv heen om makkelijk met csv bestanden om te gaan. Nou moet de fgetcsv functie o.a. weten wat het veldscheidingsteken is, of er aanhalingstekens e.d. om de waarden heenzitten en met welk karakter er ge-escaped wordt.
Is er ook een manier om dat handig zelf te analyseren? Het wordt gebruikt in een open webapplicatie waarbij helemaal niet zeker is in welke CSV-indeling mensen dingen gaan uploaden.
Inderdaad niet meer van een kwestie van je code in een cronjob zetten die om de zoveel tijd draait. Vrijwel hetzelfde als wat je in Windows doet met executables en geplande taken / scheduled tasks.quote:Op vrijdag 8 januari 2010 08:37 schreef Xcalibur het volgende:
Een cronjob maken die 1x per week of 1x per maand draait
En die dus de facturen maakt...
Met date('w') kun je achterhalen op welke dag van de week een datum valt. En met mktime() kun je een timestamp maken. Handig om te weten is dat de nulde dag van de maand eigenlijk de laatste dag van de voorgaande maand is. Met een beetje puzzelen zou het dan wel moeten lukken. Veel meer dan 10 regels code hoeft het niet te worden.quote:Op zaterdag 9 januari 2010 23:08 schreef Chandler het volgende:
Weet iemand hoe ik de laatste zaterdag van iedere maand kan achterhalen? zonder al te veel scripting te schijven?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | function lastSaturday($month, $year) { // number of days in each month $days_in_month = array(1=>31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31); // fix for leap year if(date('L', mktime(0,0,0,$month,1,$year)) > 0) $days_in_month[2] = 29; // go through days of the month, starting at the end for($day = $days_in_month[$month]; $day > 1; $day--) { // check if day is saturday if(date('l', mktime(0,0,0,$month,$day,$year)) == 'Saturday') { // yay *O* return $day; } } // boo ;( return false; } ?> |
Ik denk dat je date('t') bedoelt. Dat is inderdaad wel handig en maakt het stukje in mijn code waarin ik dat opzoek overbodigquote:Op zaterdag 9 januari 2010 23:50 schreef Intrepidity het volgende:
Dat truucje van de 0e dag kun je inderdaad toepassen, maar met date('n') kun je ook achterhalen hoeveel dagen er in de huidige maand zitten (=laatste dag van de maand)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | function lastSaturday($month, $year) { $days_in_month = date('t', mktime(0, 0, 0, $month, 1, $year)); // go through days of the month, starting at the end for($day = $days_in_month; $day > 1; $day--) { // check if day is saturday if(date('l', mktime(0,0,0,$month,$day,$year)) == 'Saturday') { // yay return $day; } } // boo return false; } ?> |
Hoe zou date('w') het korter maken dan wat hierboven staat?quote:Op zaterdag 9 januari 2010 23:58 schreef GlowMouse het volgende:
op basis van date('t') en date('w') moet het in veel minder regels kunnen
Omdat je op basis van het dagnummer van de laatste dag in een keer het juiste aantal dagen er vanaf kunt trekkenquote:Op zondag 10 januari 2010 00:01 schreef Tijn het volgende:
[..]
Hoe zou date('w') het korter maken dan wat hierboven staat?
Oh zo. Ja, dan zou je het met een simpel sommetje kunnen oplossen.quote:Op zondag 10 januari 2010 00:02 schreef Intrepidity het volgende:
[..]
Omdat je op basis van het dagnummer van de laatste dag in een keer het juiste aantal dagen er vanaf kunt trekkenDan heb je ook geen for-lus meer nodig.
1 2 3 4 5 6 7 | function lastSaturday($month, $year) { $daysInMonth = date('t', mktime(0,0,0,$month,1,$year)); $lastday = date('w', mktime(0,0,0,$month,$daysInMonth,$year)); return $daysInMonth - (($lastday+1)%7); } ?> |
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 | /** * @param <int> $weekday Dag van de week (0 .. 6 - Zondag .. Zaterdag) * @param <int> $month * @param <int> $year * @return <int> timestamp van de laatste ...dag van de maand */ function lastDayOfMonth($weekday, $month = null, $year = null) { if(is_null($year)) { $year = date('Y'); } if(is_null($month)) { $month = date('m') + 1; } else { $month++; } $dayOfMonth = 0; $dayOfWeek = date('w', mktime(0, 0, 0, $month, $dayOfMonth, $year)); $dayOfMonth = $weekday - $dayOfWeek; if($dayOfMonth > 0) { //Verkeerde maand $dayOfMonth -= 7; } return mktime(0, 0, 0, $month, $dayOfMonth, $year); } ?> |
Hier komt alleen niet het goede antwoord uitquote:Op zondag 10 januari 2010 00:07 schreef GlowMouse het volgende:
je krijgt dan zoiets
[ code verwijderd ]
Mooi, en netjes met params.quote:Op zondag 10 januari 2010 00:11 schreef Light het volgende:
Ik ben nog even verder gaan puzzelen en heb nu een oplossing die Chandler-proof is
[ code verwijderd ]
Werkt voor alle dagen van de week, gewoon met een parameter.
nu welquote:Op zondag 10 januari 2010 00:14 schreef Tijn het volgende:
[..]
Hier komt alleen niet het goede antwoord uit
Ieder z'n ding idd. Ik vind het zo'n verspilling van ruimte om voor iedere curly brace open weer een nieuwe regel te beginnen. De sluit-brace staat wel op z'n eigen regel (behalve bij een if als er een else volgt).quote:Op zondag 10 januari 2010 00:19 schreef Intrepidity het volgende:
Achja, ieder z'n eigen ding heIk kan er bijvoorbeeld niet tegen om de curly braces naast een klasse/functienaam te zetten
Braces staan bij mij altijd op een volgende regel
True, leesbaarheid is ook belangrijk. Maar 'k denk niet dat PHP je code zo verandert dat de berekening wordt geoptimaliseerd, dus een efficient algoritme verzinnen moet je wel zelf doen.quote:En inderdaad, alles zo compact mogelijk maken heeft nauwelijks zin meer. PHP compileert en optimaliseert zijn code netjes tegenwoordig.
Thanksquote:Op zondag 10 januari 2010 00:17 schreef Tuvai.net het volgende:
[..]
Mooi, en netjes met params. [ afbeelding ]
Eensquote:Ik prefereer leesbare, geïndente code over code die zo klein en compact mogelijk moet (tenzij het van belang is voor een merkbare performancewinst natuurlijk) zijn. Dat akelige Perl tijdperk waarin we zo absurd gelimiteerd waren zijn we inmiddels wel voorbij.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | { if( $expr2 ) { if( $expr3 ) { Klasje->Methode(); if( $expr4 ) { Klasje->EenMethode(); } else { Klasje->Meer(); Klasje->Code(); } } else { Klasje->Vaudje('omg'); } } else { Klasje->Vaudje('wtf'); } } else { Klasje->Vaudje('lol'); } |
quote:Op zaterdag 9 januari 2010 23:54 schreef Tuvai.net het volgende:
Wat gebruiken jullie eigenlijk om PDFs on the fly te genereren? Ik gebruik nu al heel lange tijd FPDF ( http://www.fpdf.org ) maar ik ben er elke keer érg lang mee bezig om dynamische documenten te maken, die gedeeltelijk uit variabele content en gedeeltelijk uit vaste content bestaan. Nou is PDF scripts maken sowieso al niet mijn meest favoriete bezigheid, maar in .NET gaat het me een stuk sneller af met de iText / iSharp of dbAutoTrack libraries.
Welke raden jullie aan?
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |