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; }?> |
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |