1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | abstract class A { public static function foo() { self::bar(); // Werkt niet, geeft melding dat bar() niet bestaat in klasse A } } class B extends A { public static function bar() { // Deze functie wil ik dus laten aanroepen } } B::foo(); ?> |
Je moet de aanwezigheid van bar garanderen, dus hem als abstract declaren in Aquote:Op dinsdag 14 april 2009 15:05 schreef Intrepidity het volgende:
Hoe kan ik vanuit een abstracte klasse refereren naar de daadwerkelijk aangeroepen child-klasse? Voorbeeld:
[ code verwijderd ]
self werkt hier dus niet, omdat het ondanks de child-klasse altijd naar de abstracte klasse zal verwijzen.. Hoe los ik dit op?
Er zijn meerdere klassen die A extenden, en die allemaal een eigen implementatie van bar() hebben..
Dat werkt ook niet:quote:Op dinsdag 14 april 2009 15:09 schreef Thomass het volgende:
[..]
Je moet de aanwezigheid van bar garanderen, dus hem als abstract declaren in A
Waarom zijn foo() en bar() static? Als je de verwijzing static weghaalt en self:: vervangt door $this-> dan moet het gewoon werken.quote:Op dinsdag 14 april 2009 15:05 schreef Intrepidity het volgende:
Hoe kan ik vanuit een abstracte klasse refereren naar de daadwerkelijk aangeroepen child-klasse? Voorbeeld:
[ code verwijderd ]
self werkt hier dus niet, omdat het ondanks de child-klasse altijd naar de abstracte klasse zal verwijzen.. Hoe los ik dit op?
Er zijn meerdere klassen die A extenden, en die allemaal een eigen implementatie van bar() hebben..
Daar heeft het weinig mee te maken.. klasse B is een uitbreiding op klasse A en erft dus al zijn properties en methodes, static of niet, en moet die ook kunnen gebruiken.. dat de PHP compiler niet snapt dat het in dit geval tijdens runtime self:: moet vervangen door B:: lijkt mij een foutje.. De methodes zijn static omdat ik die juist wil gebruiken om een object te instantieren op een bepaalde manier. Concreet: bar() is een functie die een database-record omzet naar een instantie van een object, foo() wordt een functie die een hele array databaserijen in een keer kan omzetten naar een array met objecten. Aangezien alleen de implementatie van bar() verschillend is per overervende klasse en foo() slechts een domme foreach loop is die tig keer bar() moet aanroepen (die ik niet wil copy-pasten in iedere subclass, das nou juist het idee van OO) leek dit me de juiste oplossing..quote:Op dinsdag 14 april 2009 19:52 schreef Arjan321 het volgende:
Ik denk dat het wel werkt als je ze niet static maakt.. Betwijfel of overerving werkt bij statics, aangezien die niet gevonden zijn aan een instantie maar aan een klasse.
Als je dat standaard doet na een upload / copy gaat het altijd goed natuurlijkquote:Op dinsdag 14 april 2009 15:08 schreef Thomass het volgende:
Hoe los je zoiets op? In het phpscript chownen nadat je een bestand maakt / verplaatst kan je een keer vergeten natuurlijk, is er een beter oplossing?
Hm, ja daar heb je denk ik wel een punt.quote:Op dinsdag 14 april 2009 20:50 schreef Intrepidity het volgende:
[..]
Daar heeft het weinig mee te maken.. klasse B is een uitbreiding op klasse A en erft dus al zijn properties en methodes, static of niet, en moet die ook kunnen gebruiken.. dat de PHP compiler niet snapt dat het in dit geval tijdens runtime self:: moet vervangen door B:: lijkt mij een foutje.. De methodes zijn static omdat ik die juist wil gebruiken om een object te instantieren op een bepaalde manier. Concreet: bar() is een functie die een database-record omzet naar een instantie van een object, foo() wordt een functie die een hele array databaserijen in een keer kan omzetten naar een array met objecten. Aangezien alleen de implementatie van bar() verschillend is per overervende klasse en foo() slechts een domme foreach loop is die tig keer bar() moet aanroepen (die ik niet wil copy-pasten in iedere subclass, das nou juist het idee van OO) leek dit me de juiste oplossing..
quote:... static method calls are resolved at compile time. When using an explicit class name the method is already identified completely and no inheritance rules apply. If the call is done by self then self is translated to the current class, that is the class the code belongs to. Here also no inheritance rules apply.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | public function __call($name, $args) { switch(sizeof($args)) { case 1: return $this->template->$name($args[0]); break; case 2: return $this->template->$name($args[0], $args[1]); break; default: return $this->template->$name(); break; } } ?> |
Zoiets misschien?quote:Op dinsdag 14 april 2009 22:13 schreef daReaper het volgende:
Hoe herschrijf ik deze functie zodat ik die switch niet nodig heb en het ook werkt met meer dan 2 elementen in $args?
[ code verwijderd ]
1 2 3 | return call_user_func_array(this->template->$name, $args); } |
ik krijg:quote:Op dinsdag 14 april 2009 22:30 schreef nightsleeper het volgende:
[..]
Zoiets misschien?
[ code verwijderd ]
Aan de andere kant is een static functie geen onderdeel van een specifiek object. Het is een onderdeel van de class en alle objecten van die class hebben exact dezelfde functie. Dat effect is nog duidelijker bij een static variabele, als je die in object1 aanpast, heeft object2 dezelfde aanpassing gezien.quote:Op dinsdag 14 april 2009 20:50 schreef Intrepidity het volgende:
[..]
Daar heeft het weinig mee te maken.. klasse B is een uitbreiding op klasse A en erft dus al zijn properties en methodes, static of niet, en moet die ook kunnen gebruiken.. dat de PHP compiler niet snapt dat het in dit geval tijdens runtime self:: moet vervangen door B:: lijkt mij een foutje.. De methodes zijn static omdat ik die juist wil gebruiken om een object te instantieren op een bepaalde manier. Concreet: bar() is een functie die een database-record omzet naar een instantie van een object, foo() wordt een functie die een hele array databaserijen in een keer kan omzetten naar een array met objecten. Aangezien alleen de implementatie van bar() verschillend is per overervende klasse en foo() slechts een domme foreach loop is die tig keer bar() moet aanroepen (die ik niet wil copy-pasten in iedere subclass, das nou juist het idee van OO) leek dit me de juiste oplossing..
Maar we hebben het hier ook niet over objecten maar over de klasse. Klasse B is een A, dus heeft alle methoden van A ook.. Een static methode is inderdaad geen onderdeel van een object, maar daar heb ik het ook helemaal niet over. Ik roep iets static aan op B, wat overerft van A, en dat dus ook moet kunnen gebruiken. Overerving gaat niet op object-niveau maar op klasse-niveau...quote:Op dinsdag 14 april 2009 23:00 schreef Light het volgende:
[..]
Aan de andere kant is een static functie geen onderdeel van een specifiek object. Het is een onderdeel van de class en alle objecten van die class hebben exact dezelfde functie. Dat effect is nog duidelijker bij een static variabele, als je die in object1 aanpast, heeft object2 dezelfde aanpassing gezien.
Als je dingen uit een database leest en in een specifieke class wilt stoppen dan kun je ook eens kijken naar mysql_fetch_object()
Wat is het alternatief, als ik jullie discussie even onderbreken mag?quote:Op woensdag 15 april 2009 09:49 schreef Intrepidity het volgende:
[..]
maar srsly, gebruikt er nog iemand mysql_* functies tegenwoordig?
mysqli, of PDO. Zelf gebruik ik al een poos PDO, werkt erg prettigquote:Op woensdag 15 april 2009 10:22 schreef daReaper het volgende:
[..]
Wat is het alternatief, als ik jullie discussie even onderbreken mag?
Als ik een class A heb met een static variabele, en die class heeft 2 subclasses, namelijk B en C, dan hebben B en C diezelfde static variabele. Verander ik de waarde bij B dan verandert ook de waarde bij C (tenzij er in C een static variabele met dezelfde naam is gedeclareerd).quote:Op woensdag 15 april 2009 09:49 schreef Intrepidity het volgende:
[..]
Maar we hebben het hier ook niet over objecten maar over de klasse. Klasse B is een A, dus heeft alle methoden van A ook.. Een static methode is inderdaad geen onderdeel van een object, maar daar heb ik het ook helemaal niet over. Ik roep iets static aan op B, wat overerft van A, en dat dus ook moet kunnen gebruiken. Overerving gaat niet op object-niveau maar op klasse-niveau...
Ik gebruik nog wel mysql_* functies. Weliswaar niet direct, maar gewoon aangeroepen vanuit een database-class, maar evengoed wordt er mysql_* gebruikt. En het ging mij er gewoon om dat je met mysql_fetch_object een class kunt opgeven. Eerst worden de databasevelden in het object geladen, daarna wordt de constructor aangeroepen. Dus je kunt ook in de constructor al het een en ander doen met de velden.quote:Ik fetch mijn data inderdaad al naar een stdClass vanuit de database (maar srsly, gebruikt er nog iemand mysql_* functies tegenwoordig?), maar daar verlies ik flexibiteit mee. Ik wil de mogelijkheid hebben om bijvoorbeeld een categorie_id property in de stdClass om te zetten naar een Categorie-object. Dit kan niet met fetch object, of fetch class, of whatever, dus schrijf ik hier een eigen functie voor. OO werken en dan vervolgens nog klooien met id's lijkt me ook weer niet handig..
Gewoon foo() kopieren naar de Klasse B. Dan gaat het wel goed.quote:Anyway, blijkbaar kan het gewoon niet ofzoDan maar een minder elegante methode toepassen
1 2 3 4 | $this->Posts->create(); $this->Posts->save(array('body' => 'TVP')); ?> |
Mja, maar het gaat hier om een groot project met ongeveer 25 subclasses onder A. OO is er nou juist voor bedoeld om code te kunnen hergebruiken, niet om alsnog generieke stukken code overal te plakken..quote:Op woensdag 15 april 2009 10:41 schreef Light het volgende:
Gewoon foo() kopieren naar de Klasse B. Dan gaat het wel goed.
Daar heb je wel een punt. En code 25 keer kopieren is ook niet bevorderlijk voor de onderhoudbaarheid. Dus zul je op zoek moeten naar een oplossing zonder static functies.quote:Op woensdag 15 april 2009 10:47 schreef Intrepidity het volgende:
[..]
Mja, maar het gaat hier om een groot project met ongeveer 25 subclasses onder A. OO is er nou juist voor bedoeld om code te kunnen hergebruiken, niet om alsnog generieke stukken code overal te plakken..
1 2 3 4 5 6 7 8 9 10 11 | <script src="includes/jquery.imgpreview.js" type="text/javascript"></script> <script type="text/javascript"> $(document).ready(function() { $('ul#first a').imgPreview(); }); </script> <ul id="first"> <li><a href="test/thumb/Blauweheuvels.jpg">AAA</a></li> </ul> |
Heb dit in de door ajax gelaadde pagina gegooid; wordt geen alert getoond...quote:Op vrijdag 17 april 2009 00:08 schreef Intrepidity het volgende:
Misschien dat 'ie omdat het een AJAX request is het ready-event nooit gooit? Het document is immers al lang ready voordat die extra content dmv AJAX wordt ingeladen.. Kun je niet eens een alert of wat anders in $(document).ready zetten om te kijken of ie dat event uberhaupt wel tegenkomt?
Probeer dit anders eens:
http://docs.jquery.com/Ajax/load#urldatacallback
Door middel van jquery een AJAX-request uitvoeren, waarbij je een callback op kunt geven, waarin je dus je je jQuery-code kunt uitvoeren.
1 2 3 4 5 | $(document).ready(function() { alert('Test Test'); }); </script> |
1 2 3 4 5 6 | if ($topic->title == "[PHP/(My)SQL] voor dummies - Deel 71") { require_once("/user/DionysuZ"); $post = new tvp; } ?> |
Ik kan niet eens een js functie direct aanroepen vanuit die pagina. Wel in de onmouseover een alertje, maar zo wil ik het niet...quote:Op vrijdag 17 april 2009 00:23 schreef markiemark het volgende:
[..]
Heb dit in de door ajax gelaadde pagina gegooid; wordt geen alert getoond...
[ code verwijderd ]
quote:Op vrijdag 17 april 2009 11:39 schreef markiemark het volgende:
[..]
Ik kan niet eens een js functie direct aanroepen vanuit die pagina. Wel in de onmouseover een alertje, maar zo wil ik het niet...
quote:Probeer dit anders eens:
http://docs.jquery.com/Ajax/load#urldatacallback
Door middel van jquery een AJAX-request uitvoeren, waarbij je een callback op kunt geven, waarin je dus je je jQuery-code kunt uitvoeren.
Zou dit ook moeten werken als het document de ready status heeft? In tegenstelling tot de 'gewone' javascript functie waar ik de alert aanroep?quote:
Een klasse schrijven om mysqli heen met het singleton patroon is de gebruikelijke optiequote:Op vrijdag 17 april 2009 17:55 schreef daReaper het volgende:
Ik ben overgestapt naar mysqli en ik gebruik de OOP variant, alleen nu zit ik met het volgende. Elke keer dat ik nu mysql wil aanspreken in een functie, moet ik $db eerst "globallen". Is hier geen andere manier voor?
1 2 | een test |
ik zou beginnen met de juiste vertaling: "this is a test".quote:Op zaterdag 18 april 2009 15:25 schreef Chandler het volgende:
Weet iemand een regex onderdeel waarmee ik het volgende kan vervangen.
[ code verwijderd ]
nu zie je in bovenstaande tekst meerdere spaties en een enter staan.
stel ik wil 'dit is een test' vervangen met 'this is an test' (dus naar het engels vertalen).
dan doe ik dat normaal zo
$code = preg_replace("$1this is an test$2",
"#([>^_-])' . preg_quote("dit is een test") . "([<^_-])#ism",
$code);
echter neemt hij dan woorden niet mee die meer spaties bevatten en of een enter in de zin hebben, dit wil ik nu wel.. hoe kan ik dit oplossen? heb zelf al geprobeerd om alle spaties met ([:space:]+?[\r\n]+) te vervangen waardoor ik dacht dat deze zou werken.. maar helaas..
Anyone?
1 2 3 4 5 | $s = "dit is\n een test"; $s = preg_replace("/dit\s+is\s+een\s+test/", "this is a test", $s); print $s; ?> |
1 2 3 4 5 6 | array( array('Pedagogie', 'uitgangspunten'), array('Aanbod', 'aanbod'), array('Ervaringen', 'ervaringen'), )); |
1 2 3 4 5 6 7 8 9 | if ($spec1 == $menu["kinderopvang"][2][0][1]) include("pages/kinderopvang_uitgangspunten.php"); if ($spec1 == $menu["kinderopvang"][2][1][1]) include("pages/kinderopvang_aanbod.php"); if ($spec2 == 'introductie') include("pages/kinderopvang_aanbod_introductie.php"); if ($spec1 == $menu["kinderopvang"][2][2][1]) include("pages/kinderopvang_ervaringen.php"); ?> |
1 2 3 4 5 6 | array( array('Ouders', 'ouders'), array('Kinderopvang', 'kinderopvang'), array('Voor alle geinteresseerden', 'geinteresseerden'), )); |
1 2 3 4 5 6 7 | if ($spec1 == $menu["agenda"][2][0][1]) include("pages/agenda_ouders.php"); if ($spec1 == $menu["agenda"][2][1][1]) include("pages/agenda_kinderopvang.php"); if ($spec1 == $menu["agenda"][2][2][1]) include("pages/agenda_geinteresseerden.php"); ?> |
dan klopt de include natuurlijk niet. Als je vanuit directory "pages/" een pagina opvraagt als "pages/agenda_ouders.php" dan include hij vanuit de root directory "pages/pages/agenda_ouders.php".quote:
http://pikler.nl/pages/agenda.phpquote:Warning: main(pages/kinderopvang_uitgangspunten.php) [function.main]: failed to open stream: No such file or directory in /home/sites/site6046/web/pages/kinderopvang.php on line 3
...
Met als grote verschil dat kinderopvang.php ook in de root (http://pikler.nl/kinderopvang.php) bestaat, en agenda.php niet.quote:Warning: main(pages/agenda_ouders.php) [function.main]: failed to open stream: No such file or directory in /home/sites/site6046/web/pages/agenda.php on line 3
...
1 2 3 4 5 6 7 | if ($spec1 == $menu["agenda"][2][0][1]) include("agenda_ouders.php"); if ($spec1 == $menu["agenda"][2][1][1]) include("agenda_kinderopvang.php"); if ($spec1 == $menu["agenda"][2][2][1]) include("agenda_geinteresseerden.php"); ?> |
1 2 3 4 5 6 7 8 9 | RewriteCond %{REQUEST_URI} ^/emmi-pikler [OR] RewriteCond %{REQUEST_URI} ^/pedagogische-visie [OR] RewriteCond %{REQUEST_URI} ^/stichting [OR] RewriteCond %{REQUEST_URI} ^/ouders [OR] RewriteCond %{REQUEST_URI} ^/kinderopvang [OR] RewriteCond %{REQUEST_URI} ^/agenda [OR] RewriteCond %{REQUEST_URI} ^/contact RewriteRule (.*) /index.php |
Nou niet als het om smaak gaat vind ik. Die persoon met 3 van de 100 voor Metallica zal lang niet zo'n grote voorkeur hebben voor Metallica dan die ander toch?quote:Op zondag 19 april 2009 11:09 schreef Mirel het volgende:
In dat geval kijkt ie toch naar de hoeveelheid in stuks, ipv procenten?
Ja... dank je wel voor je oplossing....quote:Op zondag 19 april 2009 11:19 schreef Mirel het volgende:
Dan hou je het toch op procenten? En 5 liedjes in totaal tegenover 100 is wel extreem. Naarmate de tijd strijkt, zal het vast wel beter tot z'n recht komen.
Niet voor Metallica, maar misschien wel voor het genre metal. Dus je moet verder kijken dan alleen de nummers van Metallica.quote:Op zondag 19 april 2009 11:11 schreef Swetsenegger het volgende:
[..]
Nou niet als het om smaak gaat vind ik. Die persoon met 3 van de 100 voor Metallica zal lang niet zo'n grote voorkeur hebben voor Metallica dan die ander toch?
En je wil mensen op basis van voorkeur aan elkaar koppelen.
Nou ja goed, daar geldt natuurlijk hetzelfde voor. Verander 'metallica' door 'metal nummers'. Hoewel je op genre al beter gaat matchen natuurlijk.quote:Op zondag 19 april 2009 11:28 schreef Light het volgende:
[..]
Niet voor Metallica, maar misschien wel voor het genre metal. Dus je moet verder kijken dan alleen de nummers van Metallica.
Het probleem blijft natuurlijk dat je moet bepalen wanneer er een match is, of hoe goed een match is. Dat zijn niet altijd duidelijk omschreven criteria. Ik denk dat je eerst voor jezelf duidelijk moet krijgen wanneer iets een match is (of hoe goed een match is), dan kun je daarna gaan proberen dat te bouwen.quote:Op zondag 19 april 2009 11:33 schreef Swetsenegger het volgende:
[..]
Nou ja goed, daar geldt natuurlijk hetzelfde voor. Verander 'metallica' door 'metal nummers'. Hoewel je op genre al beter gaat matchen natuurlijk.
Hmmja, het hoeft natuurlijk niet hetzelfde te zijn. Maakt het nog leukerquote:Je kan natuurlijk ook 2 kanten op matchen. Dus A heeft een match met B, maar andersom heeft B geen match met A. en dan aparte lijstjes maken ofzo 'U matched met de volgende personen" en "De volgende personen matchen met u" ofzo.
Ik denk dat dat pas gaat werken als de personen beiden meerdere nummers in hun lijstje hebben. De kans dat een match dan klopt is vele malen hoger dan als een persoon maar 5 nummers heeft ingevuld.quote:Op zondag 19 april 2009 11:11 schreef Swetsenegger het volgende:
[..]
Nou niet als het om smaak gaat vind ik. Die persoon met 3 van de 100 voor Metallica zal lang niet zo'n grote voorkeur hebben voor Metallica dan die ander toch?
En je wil mensen op basis van voorkeur aan elkaar koppelen.
Ja dat is het probleem. Als de spoeling van persoon a een stuk dunner is dan die van persoon B zeg maar.quote:Op zondag 19 april 2009 13:09 schreef Mordreth het volgende:
[..]
Ik denk dat dat pas gaat werken als de personen beiden meerdere nummers in hun lijstje hebben. De kans dat een match dan klopt is vele malen hoger dan als een persoon maar 5 nummers heeft ingevuld.
Je hoeft geen enkele pagina te verplaatsen als je ervoor zorgt dat je ini_set("include_path", '/home/sites/site6046/web/') definieert. Dan kan je gewoon overal include("pages/whatever.php") includen.quote:Op zaterdag 18 april 2009 21:30 schreef DionysuZ het volgende:
als ik bijv. je pagina's rechtstreeks opvraag krijg ik het volgende resultaat:
http://pikler.nl/pages/kinderopvang.php
[..]
http://pikler.nl/pages/agenda.php
[..]
Met als grote verschil dat kinderopvang.php ook in de root (http://pikler.nl/kinderopvang.php) bestaat, en agenda.php niet.
dusagenda.php in de root of veranderen naar:
[ code verwijderd ]
(en dan wel consequent bij de rest ook doen).
Hmz, misschien moeten we eens op de fok wiki handige code snippets gaan opslaan.quote:Op zondag 19 april 2009 14:24 schreef slacker_nl het volgende:
[..]
Je hoeft geen enkele pagina te verplaatsen als je ervoor zorgt dat je ini_set("include_path", '/home/sites/site6046/web/') definieert. Dan kan je gewoon overal include("pages/whatever.php") includen.
Zie deze post: [PHP/(My)SQL] voor dummies - deel 60
+1quote:Op zondag 19 april 2009 15:00 schreef Swetsenegger het volgende:
[..]
Hmz, misschien moeten we eens op de fok wiki handige code snippets gaan opslaan.
Ik had gelijkquote:Op zaterdag 18 april 2009 23:15 schreef Mirel het volgende:
Ohhhhh in htaccess miste een verwijzing.gefixed.
[ code verwijderd ]
Google is inderdaad een goede manier om te gaan zoeken. Ook al kan je best een andere zoekmachine proberen.quote:Op maandag 20 april 2009 16:05 schreef whoops het volgende:
Er is mij de vraag gesteld of het mogelijk is om een organogram dynamisch te laten beheren. Nu wil ik dit in PHP/MySQL doen, met wellicht JavaScript om het te presenteren.
Nu snap ik dat ik kan googlen en daar wat vinden, maar ik ben eigenlijk op zoek naar mensen die hier ervaring mee hebben, wat is een goeie (de beste?) manier om dit te doen?
Lolquote:Op maandag 20 april 2009 16:11 schreef ursel het volgende:
[..]
Google is inderdaad een goede manier om te gaan zoeken. Ook al kan je best een andere zoekmachine proberen.
Hier doet'ie het gewoon hoor.quote:Op dinsdag 21 april 2009 11:34 schreef Darkomen het volgende:
"Missing project object in project template "
Ow, het gaat om de download die niet werkt. Da's een andere link natuurlijkquote:Op dinsdag 21 april 2009 12:08 schreef Darkomen het volgende:
Raar, ik klik helemaal door naar de site (via download) en dan krijg ik dat te zien.
leek mij namelijk wel een leuk script
Ik kan wel lezen, maar ik ben eigenwijs, you of all people should know thatquote:Op dinsdag 21 april 2009 15:47 schreef whoops het volgende:
Hier doet die link het ook niet, maar vroeg ook niet om een script maar om ervaringen hoe zoiets te doen... Lezen blijft blijkbaar erg lastig
Ondertussen ben ik zelf begonnen met de implementatie, Common Sense helpt me erbij...
Daarnaast heb je gewoon erg weinig ervaring...quote:Op dinsdag 21 april 2009 17:47 schreef slacker_nl het volgende:
[..]
Ik kan wel lezen, maar ik ben eigenwijs, you of all people should know that
Ik ben bezig om er voor te zorgen dat mensen op een simpele wijze een organogram kunnen publiceren op het web. Op dit moment worden er plaatjes gebruikt dit in Visio, Word of Powerpoint gemaakt worden, maar dat is niet ideaal, zeker niet als er een kleine update moet gebeuren.quote:Op dinsdag 21 april 2009 21:35 schreef Xcalibur het volgende:
@whoops: leg eens wat duidelijk uit wat je wilt
Ik vind je vraag wel interessent, maar ik heb geen idee wat je nu wilt...
Server is weer up als het goed isquote:Op woensdag 22 april 2009 11:02 schreef Xcalibur het volgende:
Je site doet het niet?
Een tree opslaan in een database is altijd een gezeik. Ik ben niet zo handig met javascript, dus dat zou wel mijn oplossing zijn... Maar daar zijn voldoende scripts voor te vinden die dat voor je kunnen en een nette array genereren
Ziet er gaaf uit!quote:
Ziet er inderdaad keun uit.quote:
Niet per sequote:Op woensdag 22 april 2009 11:31 schreef whoops het volgende:
@Ursel, ja heb nu een structuur die met ID's en Parents werkt... Dat is de way to go als ik het via PHP/MySQL wil laten doen...
Het opslaan lijkt me op zich niet zo'n probleem... Het weergeven lijkt me lastiger moet ik zeggen.quote:Op woensdag 22 april 2009 11:42 schreef GI het volgende:
Ik zou lekker met parents en ID's gaan werken.
In principe is het gewoon een http post request.quote:Op vrijdag 24 april 2009 12:29 schreef super-muffin het volgende:
Die XML krijg ik wel opgebouwd, maar hoe ik 'em naar de server stuurgeen idee.
Ik ben er ook op zoek naar geweest, maar niet echt gevonden. Het ging mij niet om West-Europa, maar om de hele wereld, maar het was niet te vinden.quote:Op vrijdag 24 april 2009 13:33 schreef DaFrenk het volgende:
Iemand enig idee van een gratis MySQL database met daarin alle landen en bijbehorende provincies/districten van West-Europa?
Thanks! Dat gaan we eens bekijken!quote:Op vrijdag 24 april 2009 13:40 schreef HuHu het volgende:
[..]
Ik ben er ook op zoek naar geweest, maar niet echt gevonden. Het ging mij niet om West-Europa, maar om de hele wereld, maar het was niet te vinden.
Wel ontdekte ik dat drupal een hele verzameling PHP-bestanden heeft waarin voor elk land alle districten staan opgeslagen in een PHP-array. Die heb ik vervolgens gebruikt in mijn applicatie.
Je zou drupal kunnen downloaden, die bestanden kunnen inlezen en zo zelf je eigen database samenstellen.
Klopt, maar met een beetje creativiteit kom je een heel eind met die Drupal bestandenquote:Op vrijdag 24 april 2009 13:43 schreef DaFrenk het volgende:
[..]
Thanks! Dat gaan we eens bekijken!![]()
Tja, er zijn wel van die databases. Maar niet kosteloos dus.
Dit werkt ook: http://kvdb.net/projects/6pp/quote:Op vrijdag 24 april 2009 13:52 schreef ursel het volgende:
Ik heb wel ooit eens ergens een postcode database gekregen. Maar volgens mij was die echt gigantische groot, en voor mijn gratis hosting ging dat nou ook weer niet echt samen..
Whehe, da's geen bezwaar.quote:Op vrijdag 24 april 2009 13:51 schreef HuHu het volgende:
[..]
Klopt, maar met een beetje creativiteit kom je een heel eind met die Drupal bestanden.
Wow!quote:Op vrijdag 24 april 2009 13:59 schreef qu63 het volgende:
[..]
Dit werkt ook: http://kvdb.net/projects/6pp/
Hier: http://drupal.org/project/location En dan in het mapje supported, daar staat alles in.quote:Op vrijdag 24 april 2009 14:03 schreef DaFrenk het volgende:
[..]
Whehe, da's geen bezwaar.
Echter, waar kan ik die bestanden vinden? Ik zie een shitload aan *.inc bestanden, maar daarin vind ik niet echt iets wat op een dergelijke array lijkt. Of moet ik Drupal eerst installeren?
Gevonden, thanks! Die bijbehorende mysql postcodedatabases voor o.a. Duitsland zien er ook interessant uit!quote:Op vrijdag 24 april 2009 14:10 schreef HuHu het volgende:
[..]
Hier: http://drupal.org/project/location En dan in het mapje supported, daar staat alles in.
Zeker! Ook de afstand tussen 2 postcodes kan je daar vinden: http://6pp.kvdb.net/services/distance?start_postcode=1000AA&destination_postcodes=1200quote:
I know, dat kan ik met cURL doen, maar ik heb toch liever een nettere oplossing. Niemand een idee?quote:Op vrijdag 24 april 2009 12:45 schreef SuperRembo het volgende:
[..]
In principe is het gewoon een http post request.
Hij herkent niet eens mijn postcode, 2563KAquote:Op vrijdag 24 april 2009 14:18 schreef qu63 het volgende:
[..]
Zeker! Ook de afstand tussen 2 postcodes kan je daar vinden: http://6pp.kvdb.net/services/distance?start_postcode=1000AA&destination_postcodes=1200
Nee, ik zie ook dat mijn straat en postcode er niet in voorkomen. Maar het is dan ook een vrijwilligersproject begrijp ik? Misschien kunnen we onze gegevens doorgeven, dan helpen we tenminste mee om het completer te makenquote:Op vrijdag 24 april 2009 15:07 schreef ursel het volgende:
[..]
Hij herkent niet eens mijn postcode, 2563KA
ik gebruik de NuSOAP class altijd, die regelt het dan lekker voor mequote:Op vrijdag 24 april 2009 14:41 schreef super-muffin het volgende:
I know, dat kan ik met cURL doen, maar ik heb toch liever een nettere oplossing. Niemand een idee?
Hier ook..quote:Op vrijdag 24 april 2009 15:26 schreef Xcalibur het volgende:
[..]
ik gebruik de NuSOAP class altijd, die regelt het dan lekker voor me
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 46 47 | error_reporting (E_ALL); // vars aanmaken $word_array=array(); $words=''; // ongewenste leestekens $char_arr=array(":", ";", "?", ",", "(", ")", ".", "'", "\""); // bestand aanroepen $handle = fopen("http://www.mijndomein.nl/index.php", "r"); if($handle) { // Hier ergens moet alles tussen "<script" en "</script> verwijderd worden //[....] // bestand regel voor regel, woord voor woord inlezen while (!feof($handle)) { $buffer = fgetss($handle, 4096); // leestekens verwijderen $words.=str_replace($char_arr," ",$buffer); } fclose($handle); } // spaties verwijderen $words=trim($words); // string converteren naar array met woorden $word_array=explode(" ", $words); // lege keys of keys met spaties verwijderen foreach($word_array as $key => $value) { $value=trim($value); if($value == "" OR strlen($value) < 4) { unset($word_array[$key]); } } //output print_r($word_array); ?> |
Thnx, ik snap wat je bedoelt. Ik zat vast met fgetss()quote:Op zaterdag 25 april 2009 10:54 schreef SuperRembo het volgende:
Even logisch nadenken over wat er moet gebeuren:Bestand/pagina lezen Script blokken verwijderen HTML strippen Woordenlijst opbouwen
En dat dan gebruiken om nette code te schrijven.
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 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 | error_reporting (E_ALL); $char_arr=array(":", ";", "?", ",", "(", ")", ".", "'", "\"", "[", "]", "-", "_", "?", "!", "+", "=", "&", "#", "$", "%", "^", "*", "~"); $word_array=array(); $words=''; $filename="http://www.mijndomein.nl/index.php"; $words=file_get_contents($filename); //Alle woorden in lowercase weergeven $words=strtolower($words); // Metatags uitlezen $tags = get_meta_tags($filename); echo 'Author = '.$tags['author'].'<br>'; echo 'keywords = '.$tags['keywords'].'<br>'; echo 'Description = '.$tags['description'].'<br>'; echo 'Robots = '.$tags['robots'].'<br>'; $index_tag=explode(",",$tags['robots']); print_r($index_tag); print '<br>'; if(in_array("index",$index_tag)) { print 'Ja, "index" is toegestaan<br>'; } else { print 'Indexeren niet toegestaan<br>'; } if(in_array("follow",$index_tag)) { print 'Ja, "follow" is toegestaan<br>'; } else { print 'Links volgen niet toegestaan<br>'; } function get($a,$b,$c) { // Gets a string between 2 strings $y = explode($b,$a); $x = explode($c,$y[1]); return $x[0]; } echo 'titel = '.get($words, "<title>", "</title").'<br>'; // <h1>Titel</h1><p>Inhoud</p> levert de twee woorden // op aan elkaar TitelInhoud Deze moeten gescheiden worden. // In eerste instantie worden alle "</" vervangen door een "." // Dit scheidt de woorden en de "." wordt later weer verwijderd. $words=str_replace("</",".</",$words); // Verwijderen van blokken code $pattern[0] = "/<script\b[^>]*>(.*?)<\/script>/i"; $pattern[1] = "/<style\b[^>]*>(.*?)<\/style>/i"; // Blokken code vervangen door $replace = " "; // De blokken code verwijderen $words = preg_replace($pattern, $replace, $words); // Alle HTML-tags er uit halen $words=strip_tags($words); // Onnodige spaties verwijderen $words=trim($words); // Alle ongewenste (lees)tekens verwijderen // Aandachtspuntje: in de HTML borncode staan alle speciale // tekens zoals "&',<",">" als htmlentities gecodeerd. // Ook die moeten er uit. Dit kan door alle gecodeerde // tekens te decoderen naar het oorspronkelijke karakter // Alle leestekens decoderen $words=html_entity_decode($words); // Alle speciale leestekens verwijderen $words=str_replace($char_arr," ",$words); // Alle losse worden in een array stoppen // Lege waarden en woorden met minder dan 4 tekens verwijderen $word_array=explode(" ", $words); foreach($word_array as $key => $value) { $value=trim($value); if($value == "" OR strlen($value) < 4) { unset($word_array[$key]); } } // Output naar scherm asort($word_array); foreach($word_array as $key => $value) { print $key .' = '.$value.'</br />'; } ?> |
Ik heb m ook nog, 12 megabytes is ie.. en in dit formaat:quote:Op vrijdag 24 april 2009 13:52 schreef ursel het volgende:
Ik heb wel ooit eens ergens een postcode database gekregen. Maar volgens mij was die echt gigantische groot, en voor mijn gratis hosting ging dat nou ook weer niet echt samen..
1 2 3 4 | 1011AB 487895.710 122264.842 ... |
postcode + lat/lon?quote:Op zaterdag 25 april 2009 14:16 schreef Thomass het volgende:
[..]
Ik heb m ook nog, 12 megabytes is ie.. en in dit formaat:
[ code verwijderd ]
432.144 postcodetjes
Ik hou me ook aanbevolenquote:Op zaterdag 25 april 2009 22:42 schreef Xcalibur het volgende:
Kan je die postcode database ergens ter download aanbieden?
hoe volledig is die denk je?
Die zijn er eigenlijk niet. Er is de officiële van TNT, die je voor héél veel euro's mag kopen.quote:Op zondag 26 april 2009 08:59 schreef Swetsenegger het volgende:
Ik zoek eigenlijk meer een postcode/adres relatie DB.
En de volgende open-source variant die gratis is:quote:Een licentie voor de postcode database is verkrijgbaar vanaf ¤ 2.730,- voor de initiële aanschaf en ¤ 1.350,- per jaar voor de wekelijkse mutaties.
http://www.postcode.nl/in(...)e-van-nederland.html
quote:Op vrijdag 24 april 2009 13:59 schreef qu63 het volgende:
[..]
Dit werkt ook: http://kvdb.net/projects/6pp/
quote:Op zaterdag 25 april 2009 22:42 schreef Xcalibur het volgende:
Kan je die postcode database ergens ter download aanbieden?
hoe volledig is die denk je?
Alstublieft, ik weet er verder heel weinig over. Ik kwam m ooit tegen op t web en heb het opgeslagen, dus als jullie kunnen uitvinden wát die coordinaten in godsnaam zijn (latitude & longitude / rijksdriehoekscoordinaten / ...) laat het hier even wetenquote:
Je zou met behulp van Google(Maps) wel de adressen kunnen krijgen die bij bepaalde postcodes/coördinaten horenquote:Op zondag 26 april 2009 08:59 schreef Swetsenegger het volgende:
Ik zoek eigenlijk meer een postcode/adres relatie DB.
Als je een cd foongids hebt.. http://www.foondump.nl/quote:Op zondag 26 april 2009 08:59 schreef Swetsenegger het volgende:
Ik zoek eigenlijk meer een postcode/adres relatie DB.
Thanks!quote:Op zondag 26 april 2009 12:55 schreef Thomass het volgende:
[..]
[..]
Alstublieft, ik weet er verder heel weinig over. Ik kwam m ooit tegen op t web en heb het opgeslagen, dus als jullie kunnen uitvinden wát die coordinaten in godsnaam zijn (latitude & longitude / rijksdriehoekscoordinaten / ...) laat het hier even weten
http://rapidshare.com/files/225899148/postcodes.rar.html
Hoe vaak moet moet er dan wat gebeuren bij die cijfers die je noemde?quote:Op zondag 26 april 2009 17:40 schreef cablegunmaster het volgende:
ik zat me iets af te vragen
ik heb een array
$lev_nr[];
en daar zitten 2,1,2,2,2,2,1,1,1,1 in
en nu wou ik in die array zo hebben dat hij hem afgaat zoveel keer als er verschillende getallen in zitten.
dus ik dacht.
wacht ik ga hier even over nadenken![]()
![]()
quote:Op zondag 26 april 2009 17:40 schreef cablegunmaster het volgende:
ik zat me iets af te vragen
ik heb een array
$lev_nr[];
en daar zitten 2,1,2,2,2,2,1,1,1,1 in
en nu wou ik in die array zo hebben dat hij hem afgaat zoveel keer als er verschillende getallen in zitten.
dus ik dacht.
wacht ik ga hier even over nadenken :P :D
1 2 3 4 5 6 7 8 9 | $count = count($lev_nr); for ($i = 0; $i < $count; $i++) { for ($j = 0; $j < $count; $j++) { // iets doen met $lev_nr[$j] } } ?> |
nee maar daarom zeg ik ook even wacht, bedankt voor het meedenken, maar het punt is.quote:Op zondag 26 april 2009 18:39 schreef HuHu het volgende:
[..]
[ code verwijderd ]
Nu loop je de array net zo vaak helemaal af als dat er elementen in de array zitten. Als er 10 elementen in je array zitten wordt elk element dus 10x bezocht.
Hartelijk bedankt ik zal hier mee verder gaanquote:Op zondag 26 april 2009 19:32 schreef GlowMouse het volgende:
Met aantallen: http://nl.php.net/manual/en/function.count-chars.php
Zonder aantallen: http://nl3.php.net/array_unique
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 | if(!empty($_POST)) { include("content/connect.php"); $tijd = date("Y-m-d"); $gewtijd = mktime(0, 0, 0, date(("m")), date("d"), date("Y")); /* Voor elke leverancier (die in de array zit)producten controleren op uniekheid. Elke leverancier een eigen inkooporder aanmaken Per inkooporder de $_POST leverancier array afgaan om te kijken of hij gelijk is met de leverancier uit de unieke array alszo, doe een query. en pak de gegevens eruit. */ $result = array_unique($_POST['leverancier']); $i = count($_POST['leverancier']); $j = count($result); $k = 0; $l = 0; echo "<br/>".var_dump($result); while($k < $j) { $sql1 ="INSERT INTO inkooporder (lev_nr,besteldatum,gewdatum,status) VALUES ('".$result[$k]."','".$tijd."','".$gewtijd."','wachtend')"; mysql_query($sql1) or(die());; while($l < $i) { if($result[$k] == $_POST['leverancier'][$l]) { echo $_POST['leverancier'][$l]; echo $_POST['artikel_nr'][$l]."<br/>"; $sql2 ="SELECT io_nr FROM inkooporder ORDER BY io_nr DESC limit 0,1"; $test = mysql_query($sql2) or( die()); $inkooporder = mysql_fetch_assoc($test); $sql3 ="INSERT INTO inkooporderregel(io_nr,art_nr,besteld,geleverd,inkoopprijs) VALUES ('".$inkooporder['io_nr']."','".$_POST['artikel_nr'][$l]."','".$_POST['besteld'][$l]."','0','".$_POST['prijs'][$l]."')"; $sql4 = "UPDATE artikel SET voorinkopen = voorinkopen + ".$_POST['besteld'][$l]." WHERE art_nr = '".$_POST['artikel_nr'][$l]."'"; mysql_query($sql3) or(die());; mysql_query($sql4) or(die());; } $l++; } $l = 0; $k++; } ?> |
Bij nette code zie je in een oogopslag de globale structuur. Onderdelen als instellingen, logica en uitvoer zo veel mogelijk gescheiden.quote:Op zaterdag 25 april 2009 11:07 schreef beerten het volgende:
[..]
Je noemt nette code. Is mijn code in jouw ogen niet net?
1 2 3 4 5 | $date = strtotime("+1 day"); $date = date('Y-m-d H-i-s', $date); echo "datum morgen = ".$date; ?> |
1 2 3 | echo "Datum morgen: " . date('Y-m-d H-i-s', time() + 3600 * 24); ?> |
het idee hiervan vind ik weer wat onhandig.quote:
1 2 3 4 5 6 | function dagenErbij($p) { return $datum = date('Y-m-d H-i-s', time() + 3600 * 24* $P); } ?> |
Wil je dit wel? Leesvoer: http://gathering.tweakers.net/forum/list_messages/1318997/quote:Op maandag 27 april 2009 14:55 schreef cablegunmaster het volgende:
nog 1 vraagje die auto teller... hoe kan je die resetten ? in de mysql database dat hij weer teruggaat en snapt dat hij de volgende moet pakken ipv doortellen?![]()
1
2
77
78
doet hij nu
opzich heb je gelijk het was maar een ideequote:Op maandag 27 april 2009 15:02 schreef GlowMouse het volgende:
[..]
Wil je dit wel? Leesvoer: http://gathering.tweakers.net/forum/list_messages/1318997/
Hoezo onhandig? Je ziet zelf hoe makkelijk je het hebt weten aan te passen.. ;)quote:Op maandag 27 april 2009 14:42 schreef cablegunmaster het volgende:
[..]
het idee hiervan vind ik weer wat onhandig.
[ code verwijderd ]
zoiets :P ?
1 2 3 4 5 | function dagenErbij($p = 1) { return date('Y-m-d H-i-s', time() + 3600 * 24* $p); } ?> |
hoe zou je dat in het voorbeeld toepassen ?quote:Op maandag 27 april 2009 17:06 schreef GlowMouse het volgende:
Wat gebeurt er met die code als het net de volgende dag wintertijd wordt? Mktime is hiervoor de enige betrouwbare functie.
Feliquote:Op maandag 27 april 2009 14:44 schreef Intrepidity het volgende:
* Intrepidity is sinds vanochtend Zend certified engineer
Voor dit stuk code heb je inderdaad gelijk. Het ontbreekt aan overzicht. Het is echter een eigen manier van inspringen/layout. De logica is er wel degelijk. Maar nog niet in dit stuk. Klopt helemaal.quote:Op maandag 27 april 2009 13:44 schreef SuperRembo het volgende:
[..]
Bij nette code zie je in een oogopslag de globale structuur. Onderdelen als instellingen, logica en uitvoer zo veel mogelijk gescheiden.
Bij jou is het een grote lap code waar vanalles in gebeurd. Om te begrijpen wat er gebeurd moet je alles doorlezen. Ergens halverwege staat een functie met de naam "get". Wel netjes dat er commentaar bij staat, al is 't soms wat overbodig, of zou 't overbodig zijn als de indeling logischer was.
Is de lengte van een lege string niet ook minder dan 4?
1 2 3 4 | { list_folder($path.'/'.$file); } |
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 | function list_folder($path) { global $omit; global $file_arr; if($handle=opendir($path)) { while(false!==($file=readdir($handle))) { if ($file<>"." AND $file<>"..") { $pos=strlen($_SERVER['DOCUMENT_ROOT']); $path_to_search=substr($path.'/'.$file,$pos); if(is_file($path.'/'.$file)) { if(sizeof($omit) == 0 || !!in_array($path_to_search,$omit)) { $file_arr[]=$path.'/'.$file; } } if(is_dir($path.'/'.$file)) { // De hoofddirectory extraheren $path_to_search=$path_to_search.'/'; $pos=strpos(substr($path_to_search,1),'/')+1; $main_dir=substr($path_to_search,0,$pos); if(sizeof($omit) == 0 || !!in_array($main_dir,$omit)) { list_folder($path.'/'.$file); } } } } } return $file_arr; }?> |
1 2 3 4 | echo ">>{$omit}<< zit niet in"; print_r($main_dir); ?> |
??? hmmm, huh?quote:Op maandag 27 april 2009 20:20 schreef GlowMouse het volgende:
Eenvoudig debugwerk:
[ code verwijderd ]
Ok. Ik zie het echt ff niet. Het vervelende is dat je op zo'n moment rond blijft malen in bekende cirkels/gedachtendingetjes. Waar je niet uitkomt...quote:Op maandag 27 april 2009 20:33 schreef GlowMouse het volgende:
Oh, dan omgekeerd. Het blijft gokken met PHP. Maar het idee is duidelijk hoe je zoekt waar de fout zit.
1 2 3 4 5 6 | if(sizeof($omit) == 0 || !!in_array($main_dir,$omit)) { $file_arr[]=$path.'/'.$file; } ?> |
1 2 3 4 5 6 | if(sizeof($omit) == 0 || !in_array($main_dir,$omit)) { $file_arr[]=$path.'/'.$file; } else { echo ">>{$main_dir}<< zit niet in"; print_r($omit); } ?> |
Het gekke is dat zonder die check op 0 de boel een error geeft Wrong datatype. Ik kan nergens een goede oplossing/uitleg vonden.quote:Op maandag 27 april 2009 21:17 schreef Xcalibur het volgende:
het is een simpele OR
als de size 0 is, of als hij in_array zit, dan is hij true dus.
De fout is volgens mij zo simpel dat ik niet scheel genoeg kan kijken om het te zien. Zo dicht bij...quote:Sometimes, you might want to search values in array, that does not exist. In this case php will display nasty warning:
Wrong datatype for second argument in call to in_array() .
In this case, add a simple statement before the in_array function:
if (sizeof($arr_to_searchin) == 0 || !in_array($value, $arr_to_searchin)) { ... }
In this case, the 1st statement will return true, omitting the 2nd one.
Welke warning?quote:Op maandag 27 april 2009 21:25 schreef beerten het volgende:
Ik wil dat wanneer een item NIET voorkomt in de array, de boel wordt uitgevoerd.
if(!in_array($main_dir, $omit))
{
...
}
Maar als ik dit zo ingeef komt het met een Warning.
Warning: in_array() [function.in-array]: Wrong datatype for second argument in pad/naar/bestand.php on line xxquote:
Dan zou het tweede argument dus geen array zijn. Ook geen tikfoutjes gemaakt in de variabelenaam?quote:Op maandag 27 april 2009 21:57 schreef beerten het volgende:
[..]
Warning: in_array() [function.in-array]: Wrong datatype for second argument in pad/naar/bestand.php on line xx
Ik heb gegoogled maar zonder enig zinnig resultaat.
1 2 3 4 5 6 | error_reporting(E_ALL); $a = array(); $b = 'needle'; var_dump(in_array($b, $a)); ?> |
Note: As of PHP 5.1.0, this parameter became deprecated. As a result, the new timezone handling features should be used instead.quote:Op maandag 27 april 2009 17:06 schreef GlowMouse het volgende:
Wat gebeurt er met die code als het net de volgende dag wintertijd wordt? Mktime is hiervoor de enige betrouwbare functie.
De parameter is_dst is depricated. Maar die had je toch al niet nodig, want de standaardwaarde was -1. En GlowMouse gebruikte die parameter ook niet.quote:Op dinsdag 28 april 2009 06:38 schreef slacker_nl het volgende:
[..]
Note: As of PHP 5.1.0, this parameter became deprecated. As a result, the new timezone handling features should be used instead.
Denk dat het dus geen enkele drol uitmaakt.
1 2 3 4 | $t = strtotime('march 28 2009 23:59'); echo date('m-d-Y H:i', $t) . "\r\n" . date('m-d-Y H:i', $t+24*3600); ?> |
1 2 | 03-30-2009 00:59 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | // Content type header('Content-type: image/jpeg'); // Get new dimensions list($width_orig, $height_orig) = getimagesize($filename); // Resample $image_p = imagecreatetruecolor($width_orig, $height_orig); $image = imagecreatefromjpeg($filename); imagecopy($image_p, $image, 0, 0, 0, 0, $width_orig, $height_orig); // Output imagejpeg($image_p, null, 100); ?> |
Dat is afhankelijk van je timezone settings:quote:Op dinsdag 28 april 2009 10:49 schreef GlowMouse het volgende:
[ code verwijderd ]
[ code verwijderd ]
1 2 3 4 5 6 7 8 9 10 11 12 13 | function time_me($TZ = "Europe/Amsterdam", $t = 'march 28 2009 23:59') { date_default_timezone_set($TZ) . "\n"; print date_default_timezone_get() . "\n"; $t = strtotime('march 28 2009 23:59'); echo date('m-d-Y H:i', $t) . "\n"; echo date('m-d-Y H:i', $t+24*3600) . "\n"; } time_me(); time_me("UTC"); ?> |
1 2 3 4 5 6 7 | Europe/Amsterdam 03-28-2009 23:59 03-30-2009 00:59 UTC 03-28-2009 23:59 03-29-2009 23:59 |
Mktime niet. En omdat Europe/Amsterdam toch wel een veelgebruikte instelling is hier, zou ik de gok niet wagen en gewoon mktime gebruiken.quote:Op dinsdag 28 april 2009 16:43 schreef slacker_nl het volgende:
[..]
Dat is afhankelijk van je timezone settings:
Voor zover ik de documentatie van mktime lees is deze ook afhankelijk van de timezone:quote:Op dinsdag 28 april 2009 16:53 schreef GlowMouse het volgende:
[..]
Mktime niet. En omdat Europe/Amsterdam toch wel een veelgebruikte instelling is hier, zou ik de gok niet wagen en gewoon mktime gebruiken.
Ericjuh: kijk eens naar caching headers. Ook de Content-Length-header ontbreekt bij jou. Waarom gebruik je ook geen readfile, maar maak je een hele nieuwe jpeg?
quote:Op dinsdag 28 april 2009 17:01 schreef slacker_nl het volgende:
[..]
Voor zover ik de documentatie van mktime lees is deze ook afhankelijk van de timezone:
1 2 3 4 5 6 7 8 9 10 11 12 13 | function time_me($TZ = "Europe/Amsterdam", $t = 'march 28 2009 23:59') { date_default_timezone_set($TZ) . "\n"; print date_default_timezone_get() . "\n"; $t = strtotime($t); echo date('m-d-Y H:i', $t) . "\n"; echo date('m-d-Y H:i', mktime(0,0,0,date('n', $t), date('j', $t)+1, date('Y', $t)) ) . "\n"; } time_me(); time_me("UTC"); ?> |
1 2 3 4 5 6 | 03-28-2009 23:59 03-29-2009 00:00 UTC 03-28-2009 23:59 03-29-2009 00:00 |
1 2 3 4 5 6 7 | 3e Pikler Platformdag voor pedagogisch medewerkers en gastouders in de Kinderopvang op <i>vrijdag 9 oktober</i> in Utrecht. <br> Voor aanmelden en/of informatie mail naar Lucia de Jong: <a href="mailto:bureauvooropvoeders@home.nl">bureauvooropvoeders@home.nl</a> </p> |
1 2 3 4 5 6 7 8 9 10 11 12 | $title = 'kinderopvang'; $body = <<<HTML blablablablabla HTML; ?> |
Misschien ligt het aan mij, maar ik zie niet wat er mis gaat. Heb je ook een screenshot om de fout te laten zien?quote:Op dinsdag 28 april 2009 18:35 schreef Mirel het volgende:
Ik heb een stukje tekst die er fout uitziet op http://pikler.nl/agenda/kinderopvang. Er zit tevee lruimte tussen. Ik kwam erachter dat het door de forward slash komt. (en mogelijk ook door de dubbele punt)
[ code verwijderd ]
Ik heb de / proberen te veranderen naar [ afbeelding ] maar de spaties komen nog steeds voor.
Ook heb ik de : weggehaald voor de zekerheid en dan weer [ afbeelding ] proberen te gebruiken. Maar ik heb nog steeds dat die tekst veel ruimte tussen de onderlinge woorden heeft.
Nouja, eigenlijk is het geen php-foutquote:Dit alles zit in een php pagina die er zo uitziet, dus daarom heb ik het in dit topic gepost:
[ code verwijderd ]
Nouja, 1 minuut later is niet zo spannend, helemaal niet als je naar middernacht gaat.quote:Op dinsdag 28 april 2009 17:07 schreef GlowMouse het volgende:
[..]
[ code verwijderd ]
[ code verwijderd ]
Juist doordat je zelf de dag opgeeft, kan het niet foutgaan.
Het gaat fout, aangezien je rekening wilt houden met DST, UTC kent dat probleem niet, als je werkt met UTC kan je daarna de dag omzetten naar je lokale tijd. Hoef je helemaal geen rekening te houden met DST.quote:Op dinsdag 28 april 2009 17:07 schreef GlowMouse het volgende:
[..]
[ code verwijderd ]
[ code verwijderd ]
Juist doordat je zelf de dag opgeeft, kan het niet foutgaan.
1 2 3 | $a=array('/file.php','index.php',/css/style.css') $b=array('file.php','/css/') |
quote:Op dinsdag 28 april 2009 16:53 schreef GlowMouse het volgende:
[..]
Ericjuh: kijk eens naar caching headers. Ook de Content-Length-header ontbreekt bij jou. Waarom gebruik je ook geen readfile, maar maak je een hele nieuwe jpeg?
1 2 3 4 5 6 7 8 | // Content type header('Content-type: image/jpeg'); header('Content-Description: Picture'); header('Content-Length: ' . filesize($filename)); readfile($filename); ?> |
tnx! dit was de info die ik zocht! Zal het morgen ff proberen. Je hoort van mij!quote:Op woensdag 29 april 2009 00:36 schreef GlowMouse het volgende:
Als je kijkt met een tool als Wireshark of een FF-plugin als Live HTTP Headers dan zie je dat tinypic deze headers meestuurt: "Expires: Tue, 05 May 2009 22:34:32 GMT" en "Cache-Control: max-age=604800".
ik neem aan dat je je directories indexeert met een recursieve functie / loop ? Dan kun je daarin toch checken of het bestand in die array staat vóór je hem gaat recursiveren of in de resultaten gooit? Waar zit anders je probleem?quote:Op dinsdag 28 april 2009 19:48 schreef beerten het volgende:
Ik ga het maar eens anders doen...
Ik heb 2 arrays.
[ code verwijderd ]
Array $a is een array met alle files op mijn server
Array b is de array van verboden bestanden uit robots.txt
Nu wil ik graag dat alle bestanden/paden die in robots.txt voorkomen uit de array met bestanden worden gehaald.
Als ik deroot-dir scan wil ik dat bestanden/paden die in de verboden array voorkomen niet gescand worden. Die dienen te worden overgeslagen.
De eerste (doorgestreepte) optie betekent dubbel werk. Het zou wel kunnen.
Hoe kan ik dit het beste oplossen?
Ik zou met array_intersect() iets kunnen doen. Logischer is kijken of het bestand/pad voorkomt in de "verboden" array. Zo ja, niet opnemen in uiteindelijke array.
Hoe kan ik dit het beste doen?
(Het is een petit peu venijnig: '/css/' is een verboden directory. ALLE onderliggende bestanden/directory's zijn daarmee ook verboden.
1 2 3 | $_SERVER['HTTP_USER_AGENT']; ?> |
Optie 2 is denk ik het beste. Niet iedereen gebruikt immers cookies.quote:Op woensdag 29 april 2009 09:59 schreef Intrepidity het volgende:
Ik heb een googleprobleempje met een website.. Ik heb in het verleden een website gebouwd voor 4 bedrijven onder dezelfde groep. Deze website toont eerst een splashpage waar je een van de 4 bedrijven kunt kiezen. Dit heeft effect op de kleuren van de website, en dingen zoals de adresgegevens die uniek zijn per bedrijf. Deze keuze wordt opgeslagen in een cookie. So far so good. Een aantal maanden later blijkt dat google nog steeds die website niet geindexeerd heeft op de splashpage na. Dom natuurlijk dat ik dacht dat dat zou werken, want google doet niks met cookies en komt dus telkens weer op de splashpage terug. Zoals ik het zie heb ik nu de volgende opties:
- Een databasetabel met IP + bedrijfskeuze. Slechte oplossing, want mensen vanuit een bedrijfsnetwerk hebben vrijwel altijd hetzelfde externe IP en dus geen vrije keuze
- De keuze in de URL neerzetten. Kost me veel werk om dit in dit stadium nog om te bouwen, daarnaast niet persistent
- Google IP-ranges om de tuin leiden door voor die adressen al een kleurenschema te kiezen. Slechte oplossing, want blackhat SEO is bad, mkay?
Ik kom even niet verder dan dit met denken.. Zijn er andere mogelijkheden? Bij ieder bezoek opnieuw het kleurenschema kiezen is onwenselijk, het moet wel persistent wezen..
Is blackhat SEO, gaan we niet doenquote:Op woensdag 29 april 2009 10:04 schreef GI het volgende:
[ code verwijderd ]
Bij google is dat : Googlebot/1.0 (googlebot@googlebot.com http://googlebot.com/)
Bij het openen van de pagina door een googlebot-useragent het kleurschema laten kiezen.
Blackhat SEO is open voor defenitie naar mijn mening. Je bent bezig met Search Engine Optimizing. Zorgen dat er dingen daadwerkelijk gevonden worden door langs de opening pagina heen te werken lijkt mij eigenlijk helemaal niks mis mee. FOK! doet hetzelfde, omdat de googlebot geen javascript aankan krijgt de googlebot (en andere search engines) standaard de text only layout met zich mee.quote:Op woensdag 29 april 2009 10:06 schreef Intrepidity het volgende:
[..]
Is blackhat SEO, gaan we niet doen
Ze hebben allen eigen domeinen, maar die verwijzen wel naar het hoofddomein en dus naar de splashpage.. Wens van de klant, zo is het nou eenmaalquote:Op woensdag 29 april 2009 10:35 schreef ralfie het volgende:
in de url zetten is de beste optie denk ik. Ik neem aan dat elk van die bedrijven toch ook wel eens een url wil uitgeven in de zin van 'bezoek ons een op www.onsbedrijf.nl'. Lijkt me dat wel zo professioneel om dat niet eerst nog in een splashpagina te moeten kiezen welk bedrijf de bezoeker nou moet hebben. Al is het maar een subdirectory 'www.onzebedrijven.nl/bedrijf1' is dan toch al een stuk beter... zelfs al gaat het maar om subbedrijfjes.
1 2 3 4 | $titel = 'De titel'; include("htmltop.php"); ?> |
1 |
quote:Op woensdag 29 april 2009 09:58 schreef ralfie het volgende:
[..]
ik neem aan dat je je directories indexeert met een recursieve functie / loop ? Dan kun je daarin toch checken of het bestand in die array staat vóór je hem gaat recursiveren of in de resultaten gooit? Waar zit anders je probleem?
1 2 3 4 | { $file_array[]=$pad; } |
Heel kort getikt komt het hier op neer. Ik gebruik zoiets op mijn sites, werkt uitstekend. Je kan zelfs de metatags variabel maken, indexering door zoekmachines etc.quote:Op woensdag 29 april 2009 15:33 schreef hello_moto1992 het volgende:
Ik heb een website, compleet in HTML, maar ik gebruik PHP voor htmltop en htmlbottom. De <title> staat dus in de htmltop. Maar die wil ik aanpassen aan de pagina, die verschilt.
Zo ziet een bestandje er bij mij dus uit:
<?php include("htmltop.php"); ?>
<h1>Home</h1>
<p>inhoud</p>
<?php include("htmlbottom.php"); ?>
Weet iemand een manier om die title steeds met het bestandje te veranderen?
1 2 3 4 5 | <html> <title><php print $title?></title> </head> <body> |
1 2 | </html> |
1 2 3 4 5 6 7 8 9 | $title='De titel van de pagina'; include("htmltop.php"); ?> <h1>koptext</h1> <p>De inhoud van de pagina</p> <?php include("htmlbottom.php"); ?> |
Dat is ook het eerste wat ik maandag ga doenquote:Op donderdag 30 april 2009 11:03 schreef WyriHaximus het volgende:
[..]
Zo true dat ik hem naast me deur op de muur geplakt heb op kantoor.
1 2 3 | WHERE stat_id = '" . $statID . "' AND (UNIX_TIMESTAMP(lastdate) + 60*15) < UNIX_TIMESTAMP(NOW()) |
1 2 3 4 5 6 7 | `stat_id` int(10) unsigned NOT NULL, `ip` int(10) unsigned NOT NULL, `lastdate` timestamp NULL default '0000-00-00 00:00:00', UNIQUE KEY `stat_id` (`stat_id`,`ip`), KEY `lastdate` (`lastdate`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1; |
het is natuurlijk altijd sneller om (bijv in php) je timestamp uit te rekenen waartegen je je rijen wil verwijderen. Hoef je alleen nog maar WHERE timestamp < jewaarde te doen. Stukken sneller als keer op keer die waarde te berekenen. Strikt genomen moet je dan wel rekening houden met tijdsverschillen tussen php en mysql server.quote:Op vrijdag 1 mei 2009 12:35 schreef Chandler het volgende:
Een vraagje over een query:
[ code verwijderd ]
tabel gegevens:
[ code verwijderd ]
Kan ik deze verbeteren? of is mijn query juist?
Maar als je alleen 1 specifieke rij wilt verwijderen (met een uniek id) dan is het weer handiger om daarop te filteren in de WHERE. Dan kun je eventueel nog de timestamp vergelijken om te zien of de rij echt weg moet.quote:Op vrijdag 1 mei 2009 15:11 schreef ralfie het volgende:
[..]
het is natuurlijk altijd sneller om (bijv in php) je timestamp uit te rekenen waartegen je je rijen wil verwijderen. Hoef je alleen nog maar WHERE timestamp < jewaarde te doen. Stukken sneller als keer op keer die waarde te berekenen. Strikt genomen moet je dan wel rekening houden met tijdsverschillen tussen php en mysql server.
De inserts gaan allemaal aardig snel, maar voornamelijk zit het hem in de unix_timestamp conversiequote:Op vrijdag 1 mei 2009 13:11 schreef GlowMouse het volgende:
Een functie van een veld kan niet geïndexeerd worden. Kijk daarnaast eens naar of het wel nodig is of er naast een index op stat_id wel aanleiding is voor een extra index, en zoja, kijk naar hoe je indexen combineert.
Tja dat is inderdaad een handig idee. Zal eens kijken of deze stamps gelijk zijn.quote:Op vrijdag 1 mei 2009 15:11 schreef ralfie het volgende:
het is natuurlijk altijd sneller om (bijv in php) je timestamp uit te rekenen waartegen je je rijen wil verwijderen. Hoef je alleen nog maar WHERE timestamp < jewaarde te doen. Stukken sneller als keer op keer die waarde te berekenen. Strikt genomen moet je dan wel rekening houden met tijdsverschillen tussen php en mysql server.
Nee, het gaat om alle rijen die voldoen aan de gestelde criteria..quote:Op vrijdag 1 mei 2009 15:18 schreef Light het volgende:
Maar als je alleen 1 specifieke rij wilt verwijderen (met een uniek id) dan is het weer handiger om daarop te filteren in de WHERE. Dan kun je eventueel nog de timestamp vergelijken om te zien of de rij echt weg moet.
Ja, die WHERE kan ik ook lezen. Als je eerste criterium een vergelijking is op stat_id en in de tabel staat stat_id als unieke key, dan heb je het aantal mogelijke treffers al flink beperkt.quote:Op vrijdag 1 mei 2009 16:19 schreef Chandler het volgende:
Nee, het gaat om alle rijen die voldoen aan de gestelde criteria..
Late reactie, maar bedankt voor je antwoordquote:Op woensdag 29 april 2009 15:39 schreef HuHu het volgende:
[ code verwijderd ]
In htmltop.php kun je vervolgens dit doen:
[ code verwijderd ]
Klopt maar toch kan deze query nog steeds aardig wat tijd in beslag nemen, maar ik denk dat ik maar eens de unix_timestamp moet gaan aanpakken, deze kost namelijk het meeste tijdquote:Op vrijdag 1 mei 2009 17:07 schreef Light het volgende:
[..]
Ja, die WHERE kan ik ook lezen. Als je eerste criterium een vergelijking is op stat_id en in de tabel staat stat_id als unieke key, dan heb je het aantal mogelijke treffers al flink beperkt.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | include "connect.php"; //verbinding maken $query = 'SELECT `Jaar` , `Thuis` , `Gasten` , `Publiek` FROM `Toeschouwers` ORDER BY `Publiek` DESC LIMIT 0, 791 '; $sql = mysql_query($query) or die ( mysql_error( ) ); //query is uitgevoerd echo "<table width='70%' border='1' align='left'> <tr><td><strong>#</strong></td><td><strong>Datum</strong></td><td><strong>Thuis</strong></td><td><strong>Gasten</strong></td><td><strong>Publiek</strong></td></tr>"; $positie = 1; while($record = mysql_fetch_object($sql)) { if ( ($positie == 1) || ($record->Publiek < $vorige)) { $print_positie = $positie; } else { $print_positie = " "; } echo "<tr><td>".$print_positie."</td><td>".$record->Jaar."</td><td>".$record->Thuis."</td><td>".$record->Gasten."</td><td>".$record->Publiek."</td></tr>"; $vorige = $record->Publiek; $positie++; } echo "</table>"; ?> |
1 |
1 |
SELECT is het woord SELECT uit je query. Vul het daar eens inquote:Op maandag 4 mei 2009 20:07 schreef Uw_ergste_nachtmerrie het volgende:Noobish als ik ben weet ik dus niet de juiste positie voor de regel die toegevoegd moet worden..
Je zegt bij het weergeven dus ga ik er vanuit dat die pas na regel 6 moet komen?
1 |
1 2 3 4 | if(strlen($string) > 3) { //afkappen } |
Die telt woorden, geen tekens.quote:Op maandag 4 mei 2009 23:04 schreef HuHu het volgende:
Ik denk dat je op zoek bent naar deze functie: str_word_count.
Dat weet ik, maar hij zegt toch ook: "Die wil ik bijv. na 3 woorden afkappen."quote:Op maandag 4 mei 2009 23:14 schreef Light het volgende:
[..]
Die telt woorden, geen tekens.
Wat ik vaak doe is een maximaal aantal tekens bepalen, met substr() daarop afkappen en dan met substr() en strrpos() afkappen op de laatste spatie in de string.
Als je html-berichten gaat inkorten loop je ook nog het risico dat er ineens tags niet goed meer zijn afgesloten. En dat kan vreemde gevolgen hebben
Dat kan, dan moet je heel goed definieren wat als woord moet worden geteld.quote:Op maandag 4 mei 2009 23:17 schreef HuHu het volgende:
[..]
Dat weet ik, maar hij zegt toch ook: "Die wil ik bijv. na 3 woorden afkappen."
quote:Op maandag 4 mei 2009 22:33 schreef Pizzahut het volgende:
Hoi, ik ben opzoek naar een lees verder manier voor een blog.
Stel ik heb:
[ code verwijderd ]
Die wil ik bijv. na 3 woorden afkappen.
[ code verwijderd ]
1 2 3 4 5 6 7 | function afkappen_zin($string, $max_words = 5) { return join(" ", array_slice(preg_split("/\s+/", $string), 0, $max_words)); } printf("%s\n", afkappen_zin("Dit is een lange zin, vol met woorden en die gaan we afkappen", 3)); ?> |
Chandler heeft iets op z'n blog staan hierover, misschien daar even kijken?quote:Tevens ben ik op zoek naar een manier van paging icm een query.
dus als er bijv. 24 foto's op een pagina staan er een 1, 2, 3 onder komt te staan waar je naar de volgende reeks gaat. (Op google kom ik de vreemste manieren tegen, ooit een keer gemaakt op een makkelijke manier alleen vergeten hoe).
Als je toch emt een regex aan de gang gaat, gebruik dan ff een regex om in 1 keer de eerste 3 woorden te pakken. Een split en dan weer een join is niet zo efficient.quote:
Ik heb zoiets gemaakt, maar ik heb hem dan wel zodat je ook vorige/volgende/eerste/laatste pagina hebt en dat er maximaal 5 links staan die dus doorschuiven.quote:Op maandag 4 mei 2009 22:33 schreef Pizzahut het volgende:
Tevens ben ik op zoek naar een manier van paging icm een query.
dus als er bijv. 24 foto's op een pagina staan er een 1, 2, 3 onder komt te staan waar je naar de volgende reeks gaat. (Op google kom ik de vreemste manieren tegen, ooit een keer gemaakt op een makkelijke manier alleen vergeten hoe).
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | [1] 2 3 4 5 > >> pagina 2 < 1 [2] 3 4 5 > >> pagina 3 << < 1 2 [3] 4 5 > >> pagina 4 << < 2 3 [4] 5 6 > >> een na laatste pagina << < 7 8 9 [10] 11 > laatste pagina << < 7 8 9 10 [11] |
1 2 3 4 5 6 7 8 | function afkappen_zin2($string, $max_words = 5) { if (preg_match("/(\S+\s*){0,$max_words}/", $string, $matches)) { array_pop($matches); return join("", $matches); } } ?> |
En wat als de if-conditie niet waar bijkt te zijn? Als er bijvoorbeeld helemaal geen spaties inzitten? In de code wordt dan niets teruggegeven, terwijl het m.i. netter is om $string terug te geven.quote:Op dinsdag 5 mei 2009 12:47 schreef slacker_nl het volgende:
ow, omdat we een regexp gebruiken betekend niet dat we gelijk alles maar met een regexp moeten oplossen. Je kan ook split doen op ' ', maar dan pak je geen tabs (en die pakt de \s wel), dat is de enige reden van de regexp in de split, verder vind ik een split/join helemaal niet zo'n probleem als we het hebben over efficientie.
Maar goed, dit kan ook ja:
[ code verwijderd ]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | function afkappen_zin($string, $max_words = 5) { return join(" ", array_slice(preg_split("/\s+/", $string), 0, $max_words)); } function afkappen_zin2($string, $max_words = 1) { if ($string || strlen($string)) { if (preg_match("/(\S+\s*){0,$max_words}/", $string, $matches)) { array_pop($matches); return join("", $matches); } } return $string; } printf("%s\n", afkappen_zin("Dit is een lange zin, vol met woorden en die gaan we afkappen", 6)); printf("%s\n", afkappen_zin2("Dit is een lange zin, vol met woorden en die gaan we afkappen", 6)); printf("%s\n", afkappen_zin("Dit is", 1)); printf("%s\n", afkappen_zin2("ditititititititititiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii", 6)); printf("%s\n", afkappen_zin2("0", 6)); printf("%s\n", afkappen_zin2("", 6)); ?> |
1 2 3 4 5 6 7 8 | function afkappen_zin2($string, $max_words = 5) { if (preg_match("/(\S+\s*){0,$max_words}/", $string, $matches)) { array_pop($matches); } return join("", $matches); } ?> |
als ie parsed en "" teruggeeft als er geen matches bestaan, dan lijkt het me dat het klopt.quote:Op dinsdag 5 mei 2009 13:37 schreef GI het volgende:
Waarom dan niet gewoon:
[ code verwijderd ]
Of zie ik nou iets over het hoofd ?
1 2 3 4 5 | return implode(', ', array_map(create_function('$t', 'return "<a href=\"?action=search&query=$t\">$t</a>";' ), $this->tags)); ?> |
Kan onder Windows ook. php.exe <3quote:Op dinsdag 5 mei 2009 14:50 schreef slacker_nl het volgende:
Als je een Linux machine hebt kan je ook nog met php5-cli gaan werken en dan kan je dit gewoon gebruiken: php x.php
Zo maak ik al mijn php code (zodat ik geen browser nodig heb om bepaalde zaken te testen).
Zoeken naar een shoutbox.quote:Op dinsdag 5 mei 2009 14:51 schreef RHCPeter het volgende:
Ik heb een vraagje
Ik wil een tabel maken op mijn site waar bezoekers zelf iets in kunnen zettenOngeveer hetzelfde principe als dit:
http://www.iphonefriendcodes.com/games/4-Mafia-Wars
Weet iemand hoe ik dat kan doen?
Het zou juist jammer zijn als dit niet zou kunnen. Als je de output van een functie niet aan een andere functie mee kon geven, zou je een hoop missen.quote:Op dinsdag 5 mei 2009 15:27 schreef Thomass het volgende:
Soms vraag ik mezelf af waar ik in godsnaam mee bezig ben als ik prog in PHP, en waarom het zo populair is
Waarom zitten dit soort `features' in godsnaam in PHP (en waarom gebruik ik ze)?
[ code verwijderd ]
Klacht: php is kut
Als jij dit geschreven hebt ben jij vooralsnog degene die echt kut is... Dat PHP het toestaat is misschien ook wat jammer, maar echt kut ben jij in deze...quote:Op dinsdag 5 mei 2009 15:27 schreef Thomass het volgende:
Soms vraag ik mezelf af waar ik in godsnaam mee bezig ben als ik prog in PHP, en waarom het zo populair is
Waarom zitten dit soort `features' in godsnaam in PHP (en waarom gebruik ik ze)?
[ code verwijderd ]
Klacht: php is kut
Dankjequote:Op dinsdag 5 mei 2009 15:43 schreef whoops het volgende:
[..]
Als jij dit geschreven hebt ben jij vooralsnog degene die echt kut is... Dat PHP het toestaat is misschien ook wat jammer, maar echt kut ben jij in deze...
Ik bedoelde dat er dingen in die taal zitten zoals 'create_function' die twee strings accepteerd enzo. Dat moet dan doorgaan voor een anonieme functiequote:Op dinsdag 5 mei 2009 15:33 schreef GlowMouse het volgende:
[..]
Kan onder Windows ook. php.exe <3
[..]
Zoeken naar een shoutbox.
[..]
Het zou juist jammer zijn als dit niet zou kunnen. Als je de output van een functie niet aan een andere functie mee kon geven, zou je een hoop missen.
Dat valt wel mee toch? Dit is ook leuk:quote:Op dinsdag 5 mei 2009 15:27 schreef Thomass het volgende:
Soms vraag ik mezelf af waar ik in godsnaam mee bezig ben als ik prog in PHP, en waarom het zo populair is
Waarom zitten dit soort `features' in godsnaam in PHP (en waarom gebruik ik ze :') )?
[ code verwijderd ]
Klacht: php is kut
1 2 3 4 5 6 7 | $a = 'String'; $b = 0; if($a == true && $b == false && $a == $b) { echo 'Universe is broken'; } ?> |
Windows is kutquote:
My pleasure, dummyquote:
1 2 3 4 5 | function afkappenZin($string, $max = 5) { return join(" ", array_slice(preg_split("/\s+/", $string), 0, $max)); } ?> |
Door [ php] en [ /php] te gebruiken.quote:Op dinsdag 5 mei 2009 22:12 schreef Pizzahut het volgende:
[ code verwijderd ]
(hoe krijg je die php colors in die code tag?)
Deze lijkt goed te werken! Zou je me kunnen uitleggen hoe deze werkt? (Vanaf de join). Weet ik dat voor de volgende keer
Dit was deze code:quote:Op dinsdag 5 mei 2009 22:12 schreef Pizzahut het volgende:
[ code verwijderd ]
Deze lijkt goed te werken! Zou je me kunnen uitleggen hoe deze werkt? (Vanaf de join). Weet ik dat voor de volgende keer :)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | function afkappenZin($string, $max = 5) { /* We splitten de zin op alle whitespace characters als er 1 of meer voorkomen dmv een reguliere expressie */ $array = preg_split("/\s+/", $string); /* Aantal woorden dat we willen weergeven We willen $max aantal resultaat hebben kan met for-loop maar kan ook met array_slice */ $wanted = array_slice($array, 0, $max); /* wat je al wist */ return join(" ", $wanted); } ?> |
array_pop moet trouwens array_shift zijnquote:Op dinsdag 5 mei 2009 13:37 schreef GI het volgende:
Waarom dan niet gewoon:
[ code verwijderd ]
Of zie ik nou iets over het hoofd ?
Thanxquote:Op woensdag 6 mei 2009 00:14 schreef slacker_nl het volgende:
[..]
Dit was deze code:
[ code verwijderd ]
\s is een whitespace character: spatie, tab, enter, \r etc etc.quote:Op woensdag 6 mei 2009 09:10 schreef Pizzahut het volgende:
[..]
ThanxGelijk een stuk duidelijker!
Maar hoe weet je welke whitespace expressies je moet hebben?
(Dat zijn toch de /\s+/) ?
want ik zie ook wel eens /\[s+]\
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | <!-- test room --> <a href=room.php?room= echo $room1 target=_blank><div class='status'> echo $room1 </div><div class='cam'><a href=room.php?room= echo $room1 target=_blank> if($online1==$time) { echo "<http://static.domein.nl/previews/picture$room1.jpg alt=Chat border=0 class=fullborder title=Chat>"; } else { echo "<div class='img'></div>"; } </a></div><div class='line'></div><div class='btn'> <a href=room.php?room= echo $room1 target=_blank>Chat</a></div> </a></div> <!-- end test room --> ?> |
Weet je zeker dat de variabele $online1 en $time gezet zijn? Sommige servers geven foutmeldingen als er gevraagd word om een niet bestaande variabele.quote:Op woensdag 6 mei 2009 15:42 schreef bassiedekloon het volgende:
Hey hey allemaal..
Ik heb mss een hele domme vraag maar ik kom er niet uit.
Ik heb dit gemaakt:
[ code verwijderd ]
Zoals jullie mss al zien staat er een fout op lijn 5, ik krijg dat $room1 niet werkend....
weet iemand hoe dat wel moet?
Je kunt beter mod_rewrite gebruiken.quote:Op woensdag 6 mei 2009 15:42 schreef wobbel het volgende:
Enkele jaren terug had ik een grappig systeem waarmee ik mijn domein.nl/index.php?pagina=contactgegevens kon vermakkelijken naar domein.nl/contactgegevens/
Dit deed ik doormiddel van een .htaccess die mij doorstuurde naar een 404 pagina bestaande uit PHP, en die keek weer naar wat er in de adresbalk was ingevuld en die riep alsnog intern de pagina "contactgegevens" op.
Iemand ergens een stukje info hierover?
ja $online1 en $time zijn gezet.quote:Op woensdag 6 mei 2009 15:55 schreef ssmm987 het volgende:
[..]
Weet je zeker dat de variabele $online1 en $time gezet zijn? Sommige servers geven foutmeldingen als er gevraagd word om een niet bestaande variabele.
En staan er puntkomma dingetjes achter alle: echo $room1?
Als die er niet staan, en er komt nog php code achteraan, resulteert dat ook in foutmeldingen.
Als het dat niet is, zou je dan de hele foutmelding kunnen posten?
1 2 3 4 5 6 7 | <a href=room.php?room=101 target=_blank><div class='status'>101</div><div class='cam'><a href=room.php?room=101 target=_blank> <http://static.domein.nl/previews/picture'101'.jpg alt=Chat border=0 class=fullborder title=Chat> </a></div><div class='line'></div><div class='btn'> <a href=room.php?room=101 target=_blank>Chat</a></div> </a></div> <!-- end test room --> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | <a href=room.php?room=<?php echo $room1 ?> target=_blank><div class='status'><?php echo $room1 ?></div><div class='cam'><a href=room.php?room=<?php echo $room1 ?> target=_blank> <?php if($online1==$time) { echo "<http://static.domein.nl/previews/picture$room1.jpg alt=Chat border=0 class=fullborder title=Chat>"; } else { echo "<div class='img'></div>"; } ?> </a></div><div class='line'></div><div class='btn'> <a href=room.php?room=<?php echo $room1 ?> target=_blank>Chat</a></div> </a></div> <!-- end test room --> |
1 |
1 |
1 2 3 4 | echo "<img src=http://static.domein.nl/previews/picture$room1.jpg alt=Chat border=0 class=fullborder title=Chat>"; ?> |
quote:Op woensdag 6 mei 2009 16:15 schreef ssmm987 het volgende:
[ code verwijderd ]
Dit moet de image voorstellen neem ik aan?
Dat moet dus:
[ code verwijderd ]
worden. Regel 5 moet dus dit worden:
[ code verwijderd ]
Zo'n simpel foutje dat je er over heen kijkt
1 2 3 4 5 | 1 0 Hoofdcategorie 1 2 0 Hoofdcategorie 2 3 1 Subcategorie 1 4 2 Subcategorie 2 |
Ik doe het eigenlijk op de 2 queries manier. Dus een loop voor de hoofdcategorieën, en in die loop een query voor subcategoriën met als parent de hoofcategorie.quote:Op woensdag 6 mei 2009 18:51 schreef De_Hertog het volgende:
Ik wil een menu hebben met twee niveau's, categorie en subcategorie. Nu heb ik een tabel gemaakt a la:
[ code verwijderd ]
Nu wil ik dat inlezen zodat het er als volgt uit ziet:Hoofdcategorie 1
----Subcategorie 1Hoofdcategorie 2
(waarmee ik maar even aan wil geven dat subcategorie 1 dus ingesprongen onder hoofdcategorie 1 komt te staan. Subcategorie 2 is niet te zien want hoofdcategorie 2 is 'ingeklapt'.)
Nu kan ik natuurlijk twee queries uitvoeren, of zoeken op 'id = 0 OR 1' en dan de resultaatlijst twee keer doorlopen. Maar iets zegt me dat dit efficiënter kan. De vraag is, hoe?
Een van de weinige dingen die ik op internet wèl tegen kwam was de opmerking dat je eigenlijk nooit een query in een loop moet stoppen.quote:Op woensdag 6 mei 2009 18:58 schreef DaFrenk het volgende:
[..]
Ik doe het eigenlijk op de 2 queries manier. Dus een loop voor de hoofdcategorieën, en in die loop een query voor subcategoriën met als parent de hoofcategorie.
1 2 3 4 5 6 7 8 9 10 11 12 | $sql = mysql_query("SELECT * FROM `database` WHERE `parent` = 0"); while($row = mysql_query($sql)) { echo "<ul>$row['name']</ul>"; $sql2 = mysql_query("SELECT * FROM `database` WHERE `parent` = $row['id']"); while($row2 = mysql_query($sql2)) { echo "<li>$row2['name']</li>"; } } ?> |
Ik ben nu bezig met een boek en daarin leren ze je aan om de querys, de display-functies en de pagina's geschieden te houden. Ik heb dus één php-bestand voor de pagina zelf, met daarin een aanroep naar de get_data functies in het volgende bestand, en het resultaat daarvan wordt doorgegeven aan display_data in het derde bestand. Ik zou het dan wel prettig vinden om één array uit die data te krijgen om door te geven. Maar ik heb het nu gewoon met twee functies gedaan, werkt inderdaad prima maar is minder 'net'quote:Op woensdag 6 mei 2009 20:27 schreef ssmm987 het volgende:
[ code verwijderd ]
Lijkt mij toch de makkelijkste en snelste manier ;-)
Dat is dus precies wat ik aan het doen ben nu, en de reden dat ik een 'nette' of 'gestructureerde' oplossing zoekquote:Op woensdag 6 mei 2009 20:47 schreef ssmm987 het volgende:
Ik heb nooit echt boeken gelezen/cursussen gedaan om php te leren, ik zocht gewoon op internet op wat ik nodig had, en aan de hand daarvan heb ik de taal geleerd. Dingen gescheiden houden ed. zijn dingen die ik nooit echt geleerd heb daardoor.
Dat dus. En om het concreet te maken zou je kunnen kijken naar tutorials van het Zend Framework. Uiteraard op de site van Zend zelf, maar ook andere sites bieden goede tutorials over ZF. Let echter wel op dat er heel veel oude tutorials zijn, de ontwikkeling van ZF is de laatste tijd erg snel gegaan en zit momenteel op versie 1.8.quote:Op donderdag 7 mei 2009 07:15 schreef Intrepidity het volgende:
Verdiep jezelf dan eens in het MVC (Model-View-Controller) pattern.. Stuk netter als je wat grotere webapps maakt
1 2 3 4 5 | $body = ereg_replace("\{[.*?^\}]<span style=3D'display:none'\>[.*?^\}]\}", "\\1\\2", $body); ?> |
1 2 3 | "\\1\\2", $body); |
1 2 3 4 5 6 | $string = "{spec_shirt<span style=3D'display:none'>contraststofkraagstof}</span>"; echo $string . "\n"; echo preg_replace('/(?:<span>)?(\{.+\})<.span>/','\\1', $string) . "\n"; ?> |
1 2 3 | $plaats[$i] .= $part.' '; } |
Hij matcht nu alles waar tenminste één hoofdletter in zit. Zoek eens op wat ^, $, \s en * doen in een regexquote:Op donderdag 7 mei 2009 15:42 schreef Darkomen het volgende:
Nu jullie toch lekker aan het regexen zijn:
Ik wil een woord volledig in hoofdletters, met mogelijk een spatie erin, hoeft niet uit een text halen
[ code verwijderd ]
Ik dacht dat dit het wel zou zijn, maar hiermee pakt hij alles ook nummers?
Eclipse is vast overkillquote:Op donderdag 7 mei 2009 22:19 schreef beerten het volgende:
Weet iemand nog een goede freeware/open source teksteditor voor Windows xp?
Highlighting, functieherkenning, accolades herkenning, regelnummering, met een soort van verkenner aan boord die een directory/filestructuur toont.
Ik had er ooit een maar ik kan niet meer op de naam komen. Helaas...
1 2 | $xError = "<h3>Niet goed ingevuld!</h3>"; |
persoonlijk zweer ik bij JEdit maar weet niet of dit is wat je zoekt =)quote:Op donderdag 7 mei 2009 22:19 schreef beerten het volgende:
Weet iemand nog een goede freeware/open source teksteditor voor Windows xp?
Highlighting, functieherkenning, accolades herkenning, regelnummering, met een soort van verkenner aan boord die een directory/filestructuur toont.
Ik had er ooit een maar ik kan niet meer op de naam komen. Helaas...
http://download.cnet.com/(...)0248_4-10575026.htmlquote:Op donderdag 7 mei 2009 22:19 schreef beerten het volgende:
Weet iemand nog een goede freeware/open source teksteditor voor Windows xp?
Highlighting, functieherkenning, accolades herkenning, regelnummering, met een soort van verkenner aan boord die een directory/filestructuur toont.
Ik had er ooit een maar ik kan niet meer op de naam komen. Helaas...
1 |
quote:Op vrijdag 8 mei 2009 14:15 schreef Chandler het volgende:
Ik krijg de regex nog steeds niet goed!
[ code verwijderd ]
Kan iemand mij svp helpen?
1 2 3 | $result = preg_replace( '#{(.*?)<span[^>]+>(.*?)}</span>#', '{$1$2}', $subject ); ?> |
Yes! dat is het inderdaad! al moest ik wil van het laatste hekje #ism maken ivm meerdere regels etc!quote:
1 2 3 4 5 6 7 8 9 10 11 | $naam = $_REQUEST['naam'] ; $instelling = $_REQUEST['instelling'] ; $adres = $_REQUEST['adres'] ; $email = $_REQUEST['email'] ; $aantal = $_REQUEST['aantal'] ; mail( "mirelmirelmirel@gmail.com", "testformulier", $naam, $instelling, $adres, $aantal, "van: $email" ); header( "Location: http://www.pikler.nl" ); ?> |
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 | <table width="271" border="1"> <tr> <td width="102">Naam:</td> <td width="153"><label> <input type="text" name="naam"> </label></td> </tr> <tr> <td>Instelling:</td> <td><input type="text" name="instelling"></td> </tr> <tr> <td>Adres:</td> <td><input type="text" name="adres"></td> </tr> <tr> <td>E-Mail:</td> <td><input type="text" name="email"></td> </tr> <tr> <td>Aantal Kaarten:</td> <td><input type="text" name="aantal"></td> </tr> <tr> <td colspan="2"><label> <input type="submit" name="knop" value="Opsturen"> </label></td> </tr> </table> </form> |
Door de comma tussen de delen van je message worden deze gezien als additional parameters.quote:bool mail ( string $to , string $subject , string $message [, string $additional_headers [, string $additional_parameters ]] )
1 2 3 4 5 6 7 8 | $naam, $instelling, $adres, $aantal, "van: $email" ); mail( "mirelmirelmirel@gmail.com", "testformulier", $naam.' '. $instelling. ' '. $adres.' '.$aantal, "From: $email" ); of $message = $naam.' '. $instelling. ' '. $adres.' '.$aantal; mail( "mirelmirelmirel@gmail.com", "testformulier",$message, "From: $email" ); |
Iemand?quote:Op donderdag 7 mei 2009 22:51 schreef Steenarend het volgende:
Noob vraag:
[ code verwijderd ]
Hoe kan ik het voor elkaar krijgen om te laten zien wat er precies wel en niet ingevuld is?
Wat dacht je van:quote:
1 2 3 4 5 6 7 8 9 | if ($naam == '') { echo 'De naam is niet goed ingevuld.'; } if ($wachtwoord == '') { echo 'Het wachtwoord is niet goed ingevuld'; } // enz... ?> |
syntax fout. zoek een editor met code highlighting.quote:Op zondag 10 mei 2009 09:56 schreef Steenarend het volgende:
oke nu krijg ik dit: Parse error: syntax error, unexpected $end wat bedoelen ze hiermee?
En dat, inderdaad.quote:
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 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 | /* * Email scriptje smtp addepted for argeweb.nl for my website * To use adept it again to your own. * Import your own settings on to this script and use the script * wisely! Made by cablegunmaster.nl */ function authgMail($from, $namefrom, $to, $nameto, $subject, $message) { $smtpServer = "mail.smtp.nl"; $port = "25"; $timeout = "30"; // time in min before the msgs expires $username = "Username"; //user used for sending mail $password = "Password"; //password of verification to your server $localhost = "localhost"; //set this as localhost $newLine = "\r\n"; $secure = 1; //if 1 its using SSL if 0 its unsecured $date = date(c); //connect to the host and port $smtpConnect = fsockopen($smtpServer, $port, $errno, $errstr, $timeout); $smtpResponse = fgets($smtpConnect, 4096); if(empty($smtpConnect)) { $output = "Failed to connect: $smtpResponse"; echo $output; return $output; } else { $logArray['connection'] = " Connected to: $smtpResponse"; echo " connection accepted ".$smtpResponse." Continuing "; } //you have to say HELO again after TLS is started fputs($smtpConnect, "HELO $localhost". $newLine); $smtpResponse = fgets($smtpConnect, 4096); $logArray['heloresponse2'] = "$smtpResponse"; //request for auth login fputs($smtpConnect,"AUTH LOGIN" . $newLine); $smtpResponse = fgets($smtpConnect, 4096); $logArray['authrequest'] = "$smtpResponse"; //send the username fputs($smtpConnect, base64_encode($username) . $newLine); $smtpResponse = fgets($smtpConnect, 4096); $logArray['authusername'] = "$smtpResponse"; //send the password fputs($smtpConnect, base64_encode($password) . $newLine); $smtpResponse = fgets($smtpConnect, 4096); $logArray['authpassword'] = "$smtpResponse"; //email from fputs($smtpConnect, "MAIL FROM: <$from>" . $newLine); $smtpResponse = fgets($smtpConnect, 4096); $logArray['mailfromresponse'] = "$smtpResponse"; //email to fputs($smtpConnect, "RCPT TO: <$to>" . $newLine); $smtpResponse = fgets($smtpConnect, 4096); $logArray['mailtoresponse'] = "$smtpResponse"; //the email fputs($smtpConnect, "DATA" . $newLine); $smtpResponse = fgets($smtpConnect, 4096); $logArray['data1response'] = "$smtpResponse"; //construct headers $headers = "MIME-Version: 1.0" . $newLine; $headers .= "Content-type: text/html; charset=iso-8859-1" . $newLine; $headers .= "To: $nameto <$to>" . $newLine; $headers .= "From: $namefrom <$from>" . $newLine; $headers .= "Date: $date". $newline; //observe the . after the newline, it signals the end of message fputs($smtpConnect, "To: $to\r\nFrom: $from\r\nSubject: $subject\r\n$headers\r\n\r\n$message\r\n.\r\n"); $smtpResponse = fgets($smtpConnect, 4096); $logArray['data2response'] = "$smtpResponse"; // say goodbye fputs($smtpConnect,"QUIT" . $newLine); $smtpResponse = fgets($smtpConnect, 4096); $logArray['quitresponse'] = "$smtpResponse"; $logArray['quitcode'] = substr($smtpResponse,0,3); fclose($smtpConnect); //a return value of 221 in $retVal["quitcode"] is a success echo var_dump($logArray); return($logArray); } $from="Example@example.com"; $namefrom="example@cablegunmaster.nl"; $to = "whoyouwanttosendit@example.com"; $nameto = "Cablegunmaster"; $subject = "Subject where you see just test it"; $message = "Youre being watched , signed Hello world \n "; $message .= "Youre being watched ,line 2 signed The world Hello it says /n"; // this is it, lets send that email! authgMail($from, $namefrom, $to, $nameto, $subject, $message); ?> |
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |