Ik gebruik altijd Engels om consistent te blijven met de rest van de code. Verder zou ik ook voor het 2e gaan, een stuk duidelijker/leesbaarder.quote:Op dinsdag 29 juni 2010 21:32 schreef Sitethief het volgende:
Ik ben nu een ERM aan het opzetten, maar ik kom altijd in de knoop over de vraag of ik nu overal Engels of Nederlands als benamingen moet gebruiken. Naast dat ik altijd twijfel over welke benamings methode de beste is
quiz_vragen
vID
vText
vaID (ID van antwoord (in vragen))
of
quiz_vragen
vragen_ID
vragen_text
antwoorden_ID
Die manier van jou kan snel tot verwarring leiden omdat je niet in een oogopslag kunt zien welk id je te pakken hebt.quote:Op dinsdag 29 juni 2010 21:40 schreef retorbrapi het volgende:
[..]
Ik gebruik altijd Engels om consistent te blijven met de rest van de code. Verder zou ik ook voor het 2e gaan, een stuk duidelijker/leesbaarder.
Overigens had ik het zelf nog anders gedaan:
quiz_questions
id
text
question_id
quote:Op dinsdag 29 juni 2010 21:42 schreef Sitethief het volgende:
[..]
Die manier van jou kan snel tot verwarring leiden omdat je niet in een oogopslag kunt zien welk id je te pakken hebt. Te snel gelezen
Maar idd, de tweede methode is een stuk fijner werken.
Ik snap niet helemaal waarom je bij die questions-tabel twee id's gebruikt.quote:Op dinsdag 29 juni 2010 21:40 schreef retorbrapi het volgende:
Overigens had ik het zelf nog anders gedaan:
quiz_questions
id
text
question_id
Ik zie het nu pasquote:Op dinsdag 29 juni 2010 23:55 schreef Light het volgende:
[..]
Ik snap niet helemaal waarom je bij die questions-tabel twee id's gebruikt.
Maar dat was niet de vraagquote:Op woensdag 30 juni 2010 07:13 schreef Light het volgende:
Dat lijkt er al meer opNadeel is dan alleen dat je bij iedere vraag slechts 1 antwoord kunt geven, en da's misschien toch niet zo handig.
1 2 3 4 5 6 7 8 | include "library/Zend/Translate.php"; $translate = new Zend_Translate('gettext', './languages/nl.mo', 'nl'); $translate->setLocale('nl'); print $translate->_("Mark"); ?> |
1 |
1 |
1 2 3 4 5 6 7 8 | $t = new Zend_Translate(); function _($t, $v) { return $t->_($v); } echo _($t, 'Test'); ?> |
Hmmz heb je een punt. Was ook even een snel voorbeeld. Hoe zit het in bijv. Wordpress. Daar zie ik in de broncode vaak gewoon <?php echo _('text'); ?> staan.quote:Op donderdag 1 juli 2010 22:13 schreef Trollface. het volgende:
Niet doen, globals zijn slecht. Je kunt wel doen:
[ code verwijderd ]
Maar ik zou gewoon $translate->_('Test') aanroepen.
Zij gebruiken ook niet Zend... misschien een singleton waarbij een instantie van de klasse wordt gemaakt in de functie?quote:Op donderdag 1 juli 2010 22:21 schreef mark_1980 het volgende:
[..]
Hmmz heb je een punt. Was ook even een snel voorbeeld. Hoe zit het in bijv. Wordpress. Daar zie ik in de broncode vaak gewoon <?php echo _('text'); ?> staan.
In standaard PHP is _() gewoon een alias voor gettext()quote:Op donderdag 1 juli 2010 22:24 schreef Trollface. het volgende:
[..]
Zij gebruiken ook niet Zend... misschien een singleton waarbij een instantie van de klasse wordt gemaakt in de functie?
Weer wat geleerd.quote:Op donderdag 1 juli 2010 22:34 schreef Light het volgende:
[..]
In standaard PHP is _() gewoon een alias voor gettext()
Ik wil de schrijfwijze zo kort mogelijk houden. Hou zou jij dit oplossen?quote:Op donderdag 1 juli 2010 22:34 schreef Light het volgende:
[..]
In standaard PHP is _() gewoon een alias voor gettext()
Dat is wel heel erg apart.quote:Op maandag 12 juli 2010 14:55 schreef wobbel het volgende:
Als ik met Firebug kijk naar de volgende pagina krijg ik een 500 - Internal Server Error maar de pagina wordt wel gewoon weergegeven!!
http://v3.progenion.nl/sh(...)-Filter-PR-101-.html
Kan in error_log niks vinden...
Meest grappige is nog wel dat ik met PHP extra headers kan meegeven...Kan in plaats van de 500 met PHP wel een code 404, 302 etc forceren maar geen 200 OK. Wat kan dit zijn?
Ga ik nu doen, momentje...beetje lastig want draait allemaal op Plesk en die is niet zo blij met handmatige wijzingenquote:Op maandag 12 juli 2010 15:10 schreef Keiichi het volgende:
[..]
Dat is wel heel erg apart.
Als je bij apache de loglevel in de config op debug zet, krijg je misschien net iets meer te weten.
Zelf gemaakt dingetje...quote:
1 2 3 | eval ( "if ($condition) { \$condition = 0; } else { \$condition = 1; }" ); ?> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | function parseIfStatement ( $condition, $content, $elseContent = "" ) { $condition = trim ( $condition ); $condition = preg_replace ( "/(#)(\w+?)($|\s|\W)/me", "\$this->parseVariable ( \"\\2\", \"\\3\", 1 );", $condition ); eval ( "if ($condition) { \$condition = 0; } else { \$condition = 1; }" ); if ( $condition ) return stripslashes ( $content ) . $dbg; else return stripslashes ( $elseContent ) . $dbg; } ?> |
Komt uit een template parser, die moet m'n condition controlerenquote:
Dat dus.quote:
quote:Op zaterdag 24 juli 2010 12:05 schreef Trollface. het volgende:
Gebruik gewoon een Twitter-widget en style die met CSS.
1 2 3 | $twitter = substr("P2000: " . $melding, 0, 119) . "(automatisch bericht)"; ?> |
1 2 3 4 5 6 7 | <td>Voornaam:</td> <td>Achternaam: </td> </tr> <tr> <td><INPUT TYPE="text" NAME="voornaam" SIZE="22" MAXLENGTH="40" TABINDEX="1"></td> <td><INPUT TYPE="text" NAME="achternaam" SIZE="22" MAXLENGTH="40" TABINDEX="2"></td> |
1 2 3 | echo $_POST['voornaam']; ?> |
1 2 3 | $voornaam = $_POST['voornaam']; ?> |
1 2 3 4 5 6 7 | if($_POST['voornaam']){ $voornaam = $_POST['voornaam']; }else{ $voornaam = ''; } ?> |
Dat levert je een notice op als er geen veld "voornaam" aanwezig is in de post-data.quote:Op dinsdag 27 juli 2010 13:33 schreef Sitethief het volgende:
maar nog beter is dit
[ code verwijderd ]
Dit geeft de waarde die in het voornaam veld zit uit. Maar voor je verder gaat met het verwerken van die gegevens zou ik toch nog even wat dieper in de materie duiken als je dit soort basic dingen niet weet.
Daarom die derde optie. En dan zou ik zelf nog validatie toevoegen in die if, en evt shorthanded neerzetten.quote:Op dinsdag 27 juli 2010 13:51 schreef Light het volgende:
[..]
Dat levert je een notice op als er geen veld "voornaam" aanwezig is in de post-data.
Die derde optie levert ook een notice op.quote:Op dinsdag 27 juli 2010 14:52 schreef Sitethief het volgende:
[..]
Daarom die derde optie. En dan zou ik zelf nog validatie toevoegen in die if, en evt shorthanded neerzetten.
1 2 3 | if(isset($_POST['voornaam'])) { $voornaam = $_POST['voornaam']; } ?> |
1 |
In MySQL zit er geen verschil tussen een LEFT JOIN en een LEFT OUTER JOIN.quote:Op zondag 1 augustus 2010 11:01 schreef Xcalibur het volgende:
Ja, dat kan.
Je moet dan een LEFT OUTER JOIN doen, met een WHERE id IS NOT NULL
PHP.net kent die functies niet?quote:Op zondag 1 augustus 2010 12:33 schreef GlowMouse het volgende:
Als je integers gebruikt en inet_ntoa/inet_aton, wat gebeurt er als je 127.10.10.254 met twe ophoogt?
Ik doe het altijd met een outer join, heb me nooit gerealiseerd dat het met een gewone join ook werktquote:Op zondag 1 augustus 2010 11:34 schreef Light het volgende:
[..]
In MySQL zit er geen verschil tussen een LEFT JOIN en een LEFT OUTER JOIN.
het leuke is dat ze niet compatible zijnquote:Op maandag 2 augustus 2010 07:30 schreef GI het volgende:
Het zijn dan ook MySQL functies
http://php.net/manual/en/function.ip2long.php
http://www.php.net/manual/en/function.long2ip.php
Zijn de PHP versies
Nietquote:Op maandag 2 augustus 2010 22:55 schreef GlowMouse het volgende:
[..]
het leuke is dat ze niet compatible zijn
Hmm, ik merk net dat om dit helemaal lekker te laten lopen je ook een !empty nodig hebt omdat een form ook de lege velden meestuurt.quote:Op dinsdag 27 juli 2010 15:02 schreef Light het volgende:
[..]
Die derde optie levert ook een notice op.
[ code verwijderd ]
Dat gaat wel goed.
Dan moet je isset weglaten. Beide gebruiken is in dit geval zinloos. (Ze zijn overigens niet elkaars tegengestelde.)quote:Op dinsdag 3 augustus 2010 10:21 schreef Sitethief het volgende:
[..]
Hmm, ik merk net dat om dit helemaal lekker te laten lopen je ook een !empty nodig hebt omdat een form ook de lege velden meestuurt.
MySQL gebruikt unsigned ints, ip2long gebruikt signed ints.quote:Op dinsdag 3 augustus 2010 07:30 schreef GI het volgende:
[..]
NietIk heb ze nooit gebruikt maar ging er vanuit dat ze gelijk zouden werken
1 2 3 4 5 6 7 8 9 | $allowed = array(1,2,3); if (in_array($_POST["var"], $allowed)) { $var = $_POST["var"]; } else { $var = $allowed[0]; } echo $var; |
Die is flauwquote:Op dinsdag 3 augustus 2010 11:07 schreef GlowMouse het volgende:
[..]
MySQL gebruikt unsigned ints, ip2long gebruikt signed ints.
Nog een leuke voor inputvalidatie, 'voorspel de output':
[ code verwijderd ]
Je had hem goedquote:
SPOILEROm spoilers te kunnen lezen moet je zijn ingelogd. Je moet je daarvoor eerst gratis Registreren. Ook kun je spoilers niet lezen als je een ban hebt.eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
quote:Op dinsdag 3 augustus 2010 14:26 schreef webbyplus het volgende:
Kort vraagje; ik sla mijn dvd verzameling op in een textfile, inhoud ziet er ongeveer zo uit:
84|31-07-2010|Film|DVD5|Leap year
83|26-07-2010|Film|DVD5|Clash of the titans
82|26-07-2010|Film|DVD9|The Invention Of lying
81|25-07-2010|Film|DVD5|Hunter prey
80|25-07-2010|Film|DVD5|The karate kid
Nu wil ik aan de bovenkant van het bestand in php een extra regel toevoegen. Mijn vraag: Hoe doe ik dat? heb wat zitten googlen, maar er zijn maar weinig bruikbare script te vinden...
bvd
1 2 3 4 5 6 7 8 9 10 11 12 | $strFile = 'films.txt'; if(!is_file($strFile) || !is_readable($strFile) || !is_writable($strFile)) { die('Het bestand bestaat niet of is niet leesbaar/schrijfbaar!'); } $strContents = file_get_contents($strFile); $strContents = "12|12-03-2045|DVD9|Requiem for a Dream\r\n" . $strContents; file_put_contents($strFile, $strContents); ?> |
http://php.net/manual/en/function.fwrite.phpquote:[[Editors note: There is no "prepend" mode, you must essentially rewrite the entire file after prepending contents to a string. Perhaps you will use file(), modify, implode(), then fopen()/fwrite() it back]]
To put strings into the front of the file, you need to set place the pointer at the top of the file when openning the file with fopen(), see fopen() for more info.
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 | function xml2array($xml) { $xmlary = array(); $reels = '/<(\w+)\s*([^\/>]*)\s*(?:\/>|>(.*)<\/\s*\\1\s*>)/s'; $reattrs = '/(\w+)=(?:"|\')([^"\']*)(:?"|\')/'; preg_match_all($reels, $xml, $elements); foreach ($elements[1] as $ie => $xx) { $xmlary[$ie]["name"] = $elements[1][$ie]; if ($attributes = trim($elements[2][$ie])) { preg_match_all($reattrs, $attributes, $att); foreach ($att[1] as $ia => $xx) $xmlary[$ie]["attributes"][$att[1][$ia]] = $att[2][$ia]; } $cdend = strpos($elements[3][$ie], "<"); if ($cdend > 0) { $xmlary[$ie]["text"] = substr($elements[3][$ie], 0, $cdend - 1); } if (preg_match($reels, $elements[3][$ie])) $xmlary[$ie]["elements"] = xml2array($elements[3][$ie]); else if ($elements[3][$ie]) { $xmlary[$ie]["text"] = $elements[3][$ie]; } } return $xmlary; } ?> |
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 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 | ( [0] => Array ( [name] => Aansluitingen [attributes] => Array ( [id] => Aansluitingen1 [rowOrder] => 0 ) [elements] => Array ( [0] => Array ( [name] => ContractRegelID [text] => 510 [elements] => Array ( [0] => Array ( [name] => MeterID [text] => 5988 [elements] => Array ( [0] => Array ( [name] => MeetDatum [text] => 2009-12-31T00:00:00+01:0 [elements] => Array ( [0] => Array ( [name] => SegmentNaam [text] => Gas ) [1] => Array ( [name] => SegmentID [text] => 27 ) [2] => Array ( [name] => HoogType [text] => gas ) [3] => Array ( [name] => Hoog [text] => 555 ) [4] => Array ( [name] => LaagType ) [5] => Array ( [name] => ContractRegelID [text] => 5105 ) [6] => Array ( [name] => MeterID [text] => 59880 ) ) ) [1] => Array ( [name] => SegmentNaam [text] => Gas ) [2] => Array ( [name] => SegmentID [text] => 27 ) [3] => Array ( [name] => HoogType [text] => gas ) [4] => Array ( [name] => Hoog [text] => 36787 ) [5] => Array ( [name] => LaagType ) [6] => Array ( [name] => ContractRegelID [text] => 5105 ) ) ) [1] => Array ( [name] => MeetDatum [text] => 2010-05-02T00:00:00+02:00 ) [2] => Array ( [name] => SegmentNaam [text] => Gas ) [3] => Array ( [name] => SegmentID [text] => 27 ) [4] => Array ( [name] => HoogType [text] => gas ) [5] => Array ( [name] => Hoog [text] => 243333 ) [6] => Array ( [name] => LaagType ) ) ) [1] => Array ( [name] => MeterID [text] => 59880 ) [2] => Array ( [name] => MeetDatum [text] => 2010-05-12T00:00:00+02:00 ) [3] => Array ( [name] => SegmentNaam [text] => Gas ) [4] => Array ( [name] => SegmentID [text] => 27 ) [5] => Array ( [name] => HoogType [text] => gas ) [6] => Array ( [name] => Hoog [text] => 34 ) [7] => Array ( [name] => LaagType ) ) ) |
Wat bedoel je precies met een nette array? Dit is een multidimensionale array.quote:
strtotime()quote:Op donderdag 5 augustus 2010 11:04 schreef Sitethief het volgende:
PHP heeft een hoop functies om met UNIX timestamps te rekenen en om te gaan. Maar ik moet nu met het MySQL TIME type gaan werken, en ik kan niet zo een twee drie vinden hoe PHP hier mee om gaat. Moet ik bijv. HH:MM:SS uit elkaar slopen voor ik er mee ga rekenen, of kan PHP hier native mee rekenen?
SELECT UNIX_TIMESTAMP(jouw_kolomnaam).quote:Op donderdag 5 augustus 2010 11:04 schreef Sitethief het volgende:
PHP heeft een hoop functies om met UNIX timestamps te rekenen en om te gaan. Maar ik moet nu met het MySQL TIME type gaan werken, en ik kan niet zo een twee drie vinden hoe PHP hier mee om gaat. Moet ik bijv. HH:MM:SS uit elkaar slopen voor ik er mee ga rekenen, of kan PHP hier native mee rekenen?
Dat is juist niet wat ik wil. Denk ik....quote:
quote:Op donderdag 5 augustus 2010 11:37 schreef Sitethief het volgende:
[..]
Dat is juist niet wat ik wil. Denk ik....
Ik heb begin en einde tijden voor werkdagen, ik wil dus bijv. weten dus weten hoeveel uren een bepaald persoon per week werkt Wat heb ik dan aan UNIX time? Deze uren staan als HHMMSS in de database. Zo dus:
actwtID 1
actwtClientID 13
actwtDag maandag
actwtStart 080000
actwtEinde 163000
1 2 3 4 5 6 | list($intStartHour, $intStartMinute, $intStartSecond) = str_split($arrRow['actwtStart'], 2); list($intEndHour, $intEndMinute, $intEndSecond) = str_split($arrRow['actwtEinde'], 2); $intDifference = $intEndHour * 3600 + $intEndMinute * 60 + $intEndSecond - $intStartHour * 3600 - $intStartMinute * 60 - $intEndSecond; $intHours = ceil($intDifference / 3600); ?> |
Hmm ja, dit is idd ongeveer wat ik bedoel. Bedankt!quote:Op donderdag 5 augustus 2010 11:38 schreef Trollface. het volgende:
[..]
[ code verwijderd ]
Als je direct in SQL zelf wilt doen kom je met SUBSTR() al een heel eind.
1 2 3 | $intHours = ceil($intDifference / 60); ?> |
Hmmja, dan wordt het lastig. MySQL kan zelf ook met TIME rekenen, voor zover ik weetquote:Op donderdag 5 augustus 2010 11:37 schreef Sitethief het volgende:
[..]
Dat is juist niet wat ik wil. Denk ik....
Ik heb begin en einde tijden voor werkdagen, ik wil dus bijv. weten dus weten hoeveel uren een bepaald persoon per week werkt Wat heb ik dan aan UNIX time? Deze uren staan als HHMMSS in de database. Zo dus:
actwtID 1
actwtClientID 13
actwtDag maandag
actwtStart 080000
actwtEinde 163000
Klopt, mijn excuses.quote:Op donderdag 5 augustus 2010 11:51 schreef Sitethief het volgende:
[..]
Hmm ja, dit is idd ongeveer wat ik bedoel. Bedankt!
[ code verwijderd ]
Is trouwens minuten en niet uren.
En als je alleen het verschil tussen twee tijdstippen wilt weten, kun je ook met de MySQL-functie TIMEDIFF() aan de slag.quote:Op donderdag 5 augustus 2010 12:22 schreef GlowMouse het volgende:
Wat een lelijke methoden. Als je alleen de uur en minuten nodig hebt, pak dan SELECT HOUR(col), MINUTE(col)
wat Light zegt dus
Het gaat hier om relatieve tijden. Die dus niet vastliggen op een datum. Anders had ik wel gewoon DATETIME gepaktquote:Op donderdag 5 augustus 2010 11:52 schreef Light het volgende:
[..]
Hmmja, dan wordt het lastig. MySQL kan zelf ook met TIME rekenen, voor zover ik weetEn anders was het misschien handiger om begintijd en eindtijd als DATETIME op te slaan. (Ook handig voor als iemand een keer tot na middernacht doorwerkt.)
Laat ze een rekensom oplossen, of een simpele vraag beantwoorden.quote:Op donderdag 5 augustus 2010 12:30 schreef boem-dikkie het volgende:
Ik heb een contactformulier en wil deze op de één of andere manier een beetje beveiligen tegen spam. Nou heb ik wat captcha oplossingen et cetera gevonden maar dit vind ik een beetje lelijk en irritant.
Zijn er ook betere manieren in te bouwen dat je spam een beetje tegen kunt gaan?
12:00:00 op een willekeurige dag kun je moeilijk in UNIX timestamp weergeven.quote:Op donderdag 5 augustus 2010 12:55 schreef Tuvai.net het volgende:
Ik heb nooit echt gebruik gemaakt van het DATETIME type in MySQL, UNIX timestamps zijn voor mij altijd voldoende geweest om te doen wat ik wil, en er is heel eenvoudig mee te rekenen.
Oh, op die manier.quote:Op donderdag 5 augustus 2010 12:58 schreef Sitethief het volgende:
[..]
12:00:00 op een willekeurige dag kun je moeilijk in UNIX timestamp weergeven.
quote:Op donderdag 5 augustus 2010 12:34 schreef Light het volgende:
[..]
En als je alleen het verschil tussen twee tijdstippen wilt weten, kun je ook met de MySQL-functie TIMEDIFF() aan de slag.
1 2 3 | SELECT TIMEDIFF(`actwtEinde`,`actwtStart`) FROM `act_werktijden` as verschil ?> |
Ja dat bedoel ik, hoe kan ik dan het beste een multidimensionale uitlezen in php?quote:Op donderdag 5 augustus 2010 11:06 schreef Sitethief het volgende:
[..]
Wat bedoel je precies met een nette array? Dit is een multidimensionale array.
Wil je de array plat maken? Dan verlies je wel bepaalde informatie denk ik.
Ja, en als je het oneindig diep uit wilt lezen moet je een recursieve functie maken.quote:Op donderdag 5 augustus 2010 15:13 schreef Likkende_Lassie het volgende:
[..]
Ja dat bedoel ik, hoe kan ik dan het beste een multidimensionale uitlezen in php?
Met een foreach dus.. ?
Thanks!
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | function doeIetsMetMultiDimensionaleArray($array){ if (count($array)>0) { foreach ( $array as $k=>$v ) { if ( is_array($v) ) { doeIetsMetMultiDimensionaleArray($v); } else { echo "Doe hier iets met deze waarde: ".$v."\n"; } } } } doeIetsMetMultiDimensionaleArray($xmlarray); ?> |
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 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 | <soap:Body> <GetFacturenResponse xmlns="http://ncis.nl/CSSWebservices"> <GetFacturenResult> <xs:schema id="NewDataSet" targetNamespace="ncis" attributeFormDefault="qualified" elementFormDefault="qualified" xmlns:mstns="ncis" xmlns="ncis" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"> <xs:element name="NewDataSet" msdata:IsDataSet="true" msdata:MainDataTable="ncis_x003A_Facturen" msdata:UseCurrentLocale="true"> <xs:complexType> <xs:choice minOccurs="0" maxOccurs="unbounded"> <xs:element name="Facturen"> <xs:complexType> <xs:sequence> <xs:element name="Result" type="xs:string" minOccurs="0"/> <xs:element name="Remark" type="xs:string" minOccurs="0"/> <xs:element name="ContractID" type="xs:int" minOccurs="0"/> <xs:element name="ContractRegelID" type="xs:int" minOccurs="0"/> <xs:element name="ReferentieID" type="xs:int" minOccurs="0"/> <xs:element name="FactuurID" type="xs:int" minOccurs="0"/> <xs:element name="Soort" type="xs:string" minOccurs="0"/> <xs:element name="Type" type="xs:string" minOccurs="0"/> <xs:element name="Verrekenbaar" type="xs:boolean" minOccurs="0"/> <xs:element name="Termijn" type="xs:int" minOccurs="0"/> <xs:element name="Jaar" type="xs:int" minOccurs="0"/> <xs:element name="Betaalwijze" type="xs:string" minOccurs="0"/> <xs:element name="Rekeningnummer" type="xs:string" minOccurs="0"/> <xs:element name="Media" type="xs:string" minOccurs="0"/> <xs:element name="BedragExcl" type="xs:decimal" minOccurs="0"/> <xs:element name="BedragIncl" type="xs:decimal" minOccurs="0"/> <xs:element name="FactuurBedragIncl" type="xs:decimal" minOccurs="0"/> <xs:element name="VervalDatum" type="xs:dateTime" minOccurs="0"/> <xs:element name="FactuurOpenstaandBedragIncl" type="xs:decimal" minOccurs="0"/> </xs:sequence> </xs:complexType> </xs:element> </xs:choice> </xs:complexType> </xs:element> </xs:schema> <diffgr:diffgram xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" xmlns:diffgr="urn:schemas-microsoft-com:xml-diffgram-v1"> <DocumentElement xmlns="ncis"> <Facturen diffgr:id="Facturen1" msdata:rowOrder="0"> <ContractID>xxxxx</ContractID> <FactuurID>631510</FactuurID> <Soort>Factuur</Soort> <Type>Voorschot</Type> <Verrekenbaar>true</Verrekenbaar> <Termijn>8</Termijn> <Jaar>2010</Jaar> <Betaalwijze>IC</Betaalwijze> <Rekeningnummer>XXXXXXX</Rekeningnummer> <Media>Voorschotfactuur_xxxxx_2010_8_20100803.pdf</Media> <BedragExcl>1857200</BedragExcl> <BedragIncl>2210000</BedragIncl> <FactuurBedragIncl>2210000</FactuurBedragIncl> <VervalDatum>2010-08-17T00:00:00+02:00</VervalDatum> </Facturen> <Facturen diffgr:id="Facturen2" msdata:rowOrder="1"> <ContractID>xxxxx</ContractID> <FactuurID>627891</FactuurID> <Soort>Factuur</Soort> <Type>Voorschot</Type> <Verrekenbaar>true</Verrekenbaar> <Termijn>7</Termijn> <Jaar>2010</Jaar> <Betaalwijze>IC</Betaalwijze> <Rekeningnummer>XXXXXXX</Rekeningnummer> <Media>Voorschotfactuur_xxxxx_2010_7_20100703.pdf</Media> <BedragExcl>1857200</BedragExcl> <BedragIncl>2210000</BedragIncl> <FactuurBedragIncl>2210000</FactuurBedragIncl> <VervalDatum>2010-07-19T00:00:00+02:00</VervalDatum> </Facturen> <Facturen diffgr:id="Facturen3" msdata:rowOrder="2"> <ContractID>xxxxx</ContractID> <FactuurID>620726</FactuurID> <Soort>Factuur</Soort> <Type>Voorschot</Type> <Verrekenbaar>true</Verrekenbaar> <Termijn>6</Termijn> <Jaar>2010</Jaar> <Betaalwijze>IC</Betaalwijze> <Rekeningnummer>XXXXXXX</Rekeningnummer> <Media>Voorschotfactuur_xxxxx_2010_6_20100604.pdf</Media> <BedragExcl>1764800</BedragExcl> <BedragIncl>2100000</BedragIncl> <FactuurBedragIncl>2100000</FactuurBedragIncl> <VervalDatum>2010-06-18T00:00:00+02:00</VervalDatum> </Facturen> <Facturen diffgr:id="Facturen4" msdata:rowOrder="3"> <ContractID>xxxxx</ContractID> <FactuurID>617091</FactuurID> <Soort>Factuur</Soort> <Type>Voorschot</Type> <Verrekenbaar>true</Verrekenbaar> <Termijn>5</Termijn> <Jaar>2010</Jaar> <Betaalwijze>IC</Betaalwijze> <Rekeningnummer>XXXXXXX</Rekeningnummer> <Media>Voorschotfactuur_xxxxx_2010_5_20100510.pdf</Media> <BedragExcl>1764800</BedragExcl> <BedragIncl>2100000</BedragIncl> <FactuurBedragIncl>2100000</FactuurBedragIncl> <VervalDatum>2010-05-24T00:00:00+02:00</VervalDatum> </Facturen> <Facturen diffgr:id="Facturen5" msdata:rowOrder="4"> <ContractID>xxxxx</ContractID> <FactuurID>613446</FactuurID> <Soort>Factuur</Soort> <Type>Voorschot</Type> <Verrekenbaar>true</Verrekenbaar> <Termijn>4</Termijn> <Jaar>2010</Jaar> <Betaalwijze>IC</Betaalwijze> <Rekeningnummer>XXXXXXX</Rekeningnummer> <Media>Voorschotfactuur_xxxxx_2010_4_20100414.pdf</Media> <BedragExcl>1764800</BedragExcl> <BedragIncl>2100000</BedragIncl> <FactuurBedragIncl>2100000</FactuurBedragIncl> <VervalDatum>2010-04-28T00:00:00+02:00</VervalDatum> </Facturen> <Facturen diffgr:id="Facturen6" msdata:rowOrder="5"> <ContractID>xxxxx</ContractID> <FactuurID>610657</FactuurID> <Soort>Factuur</Soort> <Type>Voorschot</Type> <Verrekenbaar>true</Verrekenbaar> <Termijn>3</Termijn> <Jaar>2010</Jaar> <Betaalwijze>IC</Betaalwijze> <Rekeningnummer>XXXXXXX</Rekeningnummer> <Media>Voorschotfactuur_xxxxx_2010_3_20100319.pdf</Media> <BedragExcl>1764800</BedragExcl> <BedragIncl>2100000</BedragIncl> <FactuurBedragIncl>2100000</FactuurBedragIncl> <VervalDatum>2010-04-02T00:00:00+02:00</VervalDatum> </Facturen> <Facturen diffgr:id="Facturen7" msdata:rowOrder="6"> <ContractID>xxxxx</ContractID> <FactuurID>608073</FactuurID> <Soort>Factuur</Soort> <Type>Voorschot</Type> <Verrekenbaar>true</Verrekenbaar> <Termijn>2</Termijn> <Jaar>2010</Jaar> <Betaalwijze>IC</Betaalwijze> <Rekeningnummer>XXXXXXX</Rekeningnummer> <Media>Voorschotfactuur_xxxxx_2010_2.pdf</Media> <BedragExcl>1764700</BedragExcl> <BedragIncl>2100000</BedragIncl> <FactuurBedragIncl>2100000</FactuurBedragIncl> <VervalDatum>2010-03-04T00:00:00+01:00</VervalDatum> </Facturen> <Facturen diffgr:id="Facturen8" msdata:rowOrder="7"> <ContractID>xxxxx</ContractID> <FactuurID>603370</FactuurID> <Soort>Factuur</Soort> <Type>Voorschot</Type> <Verrekenbaar>true</Verrekenbaar> <Termijn>1</Termijn> <Jaar>2010</Jaar> <Betaalwijze>IC</Betaalwijze> <Rekeningnummer>XXXXXXX</Rekeningnummer> <Media>Voorschotfactuur_xxxxx_2010_1.pdf</Media> <BedragExcl>1789700</BedragExcl> <BedragIncl>2129700</BedragIncl> <FactuurBedragIncl>2129700</FactuurBedragIncl> <VervalDatum>2010-02-08T00:00:00+01:00</VervalDatum> </Facturen> </DocumentElement> </diffgr:diffgram> </GetFacturenResult> </GetFacturenResponse> </soap:Body> </soap:Envelope> |
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 | function xml2array($xml) { $xmlary = array(); $reels = '/<(\w+)\s*([^\/>]*)\s*(?:\/>|>(.*)<\/\s*\\1\s*>)/s'; $reattrs = '/(\w+)=(?:"|\')([^"\']*)(:?"|\')/'; preg_match_all($reels, $xml, $elements); foreach ($elements[1] as $ie => $xx) { $xmlary[$ie]["name"] = $elements[1][$ie]; if ($attributes = trim($elements[2][$ie])) { preg_match_all($reattrs, $attributes, $att); foreach ($att[1] as $ia => $xx) $xmlary[$ie]["attributes"][$att[1][$ia]] = $att[2][$ia]; } $cdend = strpos($elements[3][$ie], "<"); if ($cdend > 0) { $xmlary[$ie]["text"] = substr($elements[3][$ie], 0, $cdend - 1); } if (preg_match($reels, $elements[3][$ie])) $xmlary[$ie]["elements"] = xml2array($elements[3][$ie]); else if ($elements[3][$ie]) { $xmlary[$ie]["text"] = $elements[3][$ie]; } } return $xmlary; } $result = soapCall('GetFacturen', array('sessieID' => $_SESSION['loginSession_ID'], 'Contractnummer' => $_SESSION['contractnummer'])); //lets put it in a readable array! $resultArray = xml2array($result->GetFacturenResult->any); ?> |
1 2 3 4 5 6 7 8 9 | $result = soapCall('GetFacturen', array('sessieID' => $_SESSION['loginSession_ID'], 'Contractnummer' => $_SESSION['contractnummer'])); $objDOM = new DOMDocument(); $objDOM->load($result); //make sure path is correct $Facturen = $objDOM->getElementsByTagName("Facturen"); print_r($Facturen); ?> |
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |