1 2 3 4 5 6 7 8 9 10 11 12 13 14 | <id>2</id> <titel>Titeltest</titel> <doelstelling>Test test</doelstelling> <vraagt></vraagt> <locatie>Rotterdam</locatie> </bedrijf> <bedrijf> <id>3</id> <titel>Test Test</titel> <doelstelling>Testje</doelstelling> <vraagt>Ik vraag </vraagt> <locatie>Amsterdam</locatie> </bedrijf> |
1 2 3 4 5 6 7 8 | $matches = array(); $findID = 3; preg_match('#<bedrijf>.*<id>' . $findID . '</id>.*<titel>(.*)</titel>.* <doelstelling>(.*)</doelstelling>.*<vraagt>(.*)</vraagt>.* <locatie>(.*)</locatie>.*</bedrijf>#Uis', $data, $matches); print_r($matches); ?> |
Alle tekens matchen. Wordt hier vooral gebruikt voor newlines en spaties, bij XML bestanden staan volgende tags immers meestal op een nieuwe regel.quote:Op dinsdag 23 mei 2006 07:01 schreef fokME2 het volgende:
Die .* in die preg_match, zonder haakjes. Wat doet die precies?
Werkt, maar is niet handig. Als er iets wordt aangepast in de XML dan heb je een probleem. De manier van Roönaän is met een simpel if-statement uit te breiden voor een ID-check.quote:Op maandag 22 mei 2006 19:24 schreef JeRa het volgende:
@broodmonkeh
Zo even uit het blote hoofd met een regular expression:
[ code verwijderd ]
Wel alles op één regel zetten natuurlijk
In principe zou je beter een enkele file kunnen maken. mod.mod_name.phpquote:Op maandag 22 mei 2006 09:02 schreef Chandler het volgende:
[..]
Je zegt het wel heel erg simpel maar in praktijk blijkt het niet zo simpel te zijn
1 2 3 4 5 6 7 8 | function hasAdmin() {} function hasRuntime() {} function hasInfo() {} function getInfo() {} function getRuntime() {} function getAdmin() {} } |
1 2 3 4 5 6 7 8 9 10 11 | $requestedId = 4; $inhoud = explode('<bedrijf>', $inhoud); foreach($inhoud as $vacature) { $id = preg_match('#<id>(.*?)</id>#', $vacature, $m) ? $m[1] : 0; if($id == $requestedId) { $titel = preg_match('#<titel>(.*?)</titel>#', $vacature, $m) ? $m[1] : 0; echo '<a href="index.php?actie=bekijk&vacatureid='.intval($id).'">'.htmlspecialchars ($title).'</a><br/>'; break; } } |
Ik moet me echt gaan verdiepen in OOPquote:Op dinsdag 23 mei 2006 08:44 schreef Roönaän het volgende:
[..]
In principe zou je beter een enkele file kunnen maken. mod.mod_name.php
Die bevat een class met verschillende functies:
[ code verwijderd ]
Of getAdmin er vervolgens uitziet als function getAdmin() { include dirname(__FILE__).'/mod_name.admin.php';} maakt dan niet zo heel veel uit.
Het punt is wel dat je maar een single point of failure hebt ipv vier.
Heb je dat PHP5 Power Programming boek niet gelezen, waar je zelf mee kwam?quote:Op dinsdag 23 mei 2006 08:47 schreef Swetsenegger het volgende:
[..]
Ik moet me echt gaan verdiepen in OOP
Áls je het zo wilt opstellen. Bovengenoemde is een van de methodes die ik ooit gebruikt heb.quote:Op dinsdag 23 mei 2006 08:47 schreef Swetsenegger het volgende:
Ik moet me echt gaan verdiepen in OOP
Ik wist alles al, behalve OOP... en dat heb ik overgeslagenquote:Op dinsdag 23 mei 2006 08:53 schreef Tijn het volgende:
[..]
Heb je dat PHP5 Power Programming boek niet gelezen, waar je zelf mee kwam?
Zie je...., ik begrijp totaal niet wat je hier zegtquote:Op dinsdag 23 mei 2006 08:54 schreef Roönaän het volgende:
[..]
Áls je het zo wilt opstellen. Bovengenoemde is een van de methodes die ik ooit gebruikt heb.
Meer recent heb ik gewoon een series classes voor output modules en een serie classes voor managers ("admin tools"), en die staan aan elkaar gelinkt.
Dit om te voorkomen dat je dezelfde database management meuk voor iedere db-driven class opnieuw moet schrijven.
Grin. Je hebt een serie modules:quote:Op dinsdag 23 mei 2006 08:57 schreef Swetsenegger het volgende:
[..]
Ik wist alles al, behalve OOP... en dat heb ik overgeslagen
[..]
Zie je...., ik begrijp totaal niet wat je hier zegt
Ok, zo in tekst klinkt het logisch en wordt de toegevoegde waarde van OOP ook wel duidelijk.quote:Op dinsdag 23 mei 2006 09:07 schreef Roönaän het volgende:
[..]
Grin. Je hebt een serie modules:
basic_module.php
modules/module1.php
modules/module2.php
modules/module3.php
En een serie managers:
basic_manager.php
managers/dbmanager.php
managers/filemanager.php
managers/formmanager.php
Vervolgens stel je dat elke module een subclass is van een basic_module en elke manager een subclass van basic_manager.
Waar ik in het eerste voorbeeld de admin had als onderdeel van de module class, is het in dit voorbeeld zo dat elke module een functie heeft: getManager().
De manager heeft vervolgens een bepaalde set functies om te integreren met je content management systeem.
De modules zelf bevatten dan voornamelijk runtime info, en een relatief kleine set data om de manager aan te sturen. (Bijvoorbeeld: "welke db-tabel moet er gebruikt worden" of "welke 'aliassen' moeten er getoond worden ipv db-fields. 'user_id' => 'Gebruikersid', etc").
Altijd prettig, werkgevers die het licht zien als het om investering in de kennis van je medewerkers gaat.quote:Op dinsdag 23 mei 2006 09:18 schreef Swetsenegger het volgende:
Maar... met een beetje mazzel komt er een verschuiving in werkzaamheden en kan ik in de baas z'n tijd wat meer aan de studie
De manier van Roönaän gaat ook op zijn bek als er grote wijzigingen worden doorgevoerd. Het beste is nog altijd om een XML-parser te gebruikenquote:Op dinsdag 23 mei 2006 07:14 schreef Light het volgende:
[..]
Werkt, maar is niet handig. Als er iets wordt aangepast in de XML dan heb je een probleem. De manier van Roönaän is met een simpel if-statement uit te breiden voor een ID-check.
Begin dan met PHP6 (zie de php-src module in CVS) of pak een taal die een wat completere set aan OOP-mogelijkheden biedt; met PHP is het elke keer weer nét nietquote:Op dinsdag 23 mei 2006 08:47 schreef Swetsenegger het volgende:
[..]
Ik moet me echt gaan verdiepen in OOP
PHP5, SimpleXMLquote:Op dinsdag 23 mei 2006 11:26 schreef JeRa het volgende:
[..]
De manier van Roönaän gaat ook op zijn bek als er grote wijzigingen worden doorgevoerd. Het beste is nog altijd om een XML-parser te gebruiken
1 |
1 2 3 | $sql_query = "SELECT bericht FROM slowchat WHERE userid='{$MemCookID}' and bericht = '{$bericht}' and datumtijd >= '{$uurnu}' "; ?> |
PHP4 beschikt niet over een native XML-parser. En dan gaat mijn voorkeur uit naar een oplossing waarbij de volgorde van de elementen binnen een item (dus id en titel binnen bedrijf) niet relevant is boven een oplossing waarbij de volgorde vast is.quote:Op dinsdag 23 mei 2006 11:26 schreef JeRa het volgende:
[..]
De manier van Roönaän gaat ook op zijn bek als er grote wijzigingen worden doorgevoerd. Het beste is nog altijd om een XML-parser te gebruiken
Dát is natuurlijk helemaal waar. Ikzelf werk alleen in PHP5 en draai zo nu en dan PHP-cvs, dan denk je daar niet eens meer over naquote:Op dinsdag 23 mei 2006 18:37 schreef Light het volgende:
[..]
PHP4 beschikt niet over een native XML-parser.
quote:Op dinsdag 23 mei 2006 18:33 schreef c0nd0r het volgende:
Heb je ook de foutmelding?
En iets minder layout verneukende code
quote:Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /usr/home/jeroen/www/test/chat.php on line 154
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'emoticons/tongue.gif'> ', 2, '2006-05-23 18:16:03', '62.251.120.197')' at line 1
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |