1 2 3 | echo 'Yeah <img class="rde_img_smiley" src="http://i.fok.nl/s/coool.gif" width="15" height="15" alt="" />'; ?> |
1 2 3 | echo chr(ord('S')+1).chr(ord('U')+1).chr(ord('O')+1); ?> |
Dit topic is natuurlijk ook echt onmogelijk te vinden.....quote:Op woensdag 12 mei 2010 00:53 schreef SinofEnvy het volgende:
[..]
hihi, I see what you did there.
tevens verkapte tvp
Maar tis wel makkelijker om vanuit je MyAT te zien wanneer er nieuwe posts zijnquote:Op woensdag 12 mei 2010 01:27 schreef amvrosios het volgende:
[..]
Dit topic is natuurlijk ook echt onmogelijk te vinden.....
1 2 3 4 5 6 | $formule = shopp('cart','total','return=true'); // oftewel ¤35,50 $float_value = floatval($formule); // haal alleen de waarde eruit (dus het euro teken weg?) $schoonmaken = str_replace(",",".",$float_value); // vervang de komma door een punt...? echo ($schoonmaken / 119)*19; // bereken btw ?> |
zal het gaan proberen, nogmaals ben nog niet zo heel lang met php bezig, ben een noob nogquote:Op donderdag 13 mei 2010 21:42 schreef Trollface. het volgende:
Probeer dmv substr() eerst het ¤-teken weg te halen.
1 2 3 4 5 6 | $formule = shopp('cart','total','return=true'); // oftewel ¤getal $schoonmaken = str_replace(",",".",$formule); // vervang de komma door een punt...? $som = substr($schoonmaken,34); echo $som / 119 * 19; ?> |
Nee substr geeft je een gedeelte van een string terug, floatval de floatwaarde. Probeer dit eens:quote:Op donderdag 13 mei 2010 21:43 schreef Dawnbreaker het volgende:
[..]
zal het gaan proberen, nogmaals ben nog niet zo heel lang met php bezig, ben een noob nog
maar is substr dan niet hetzelfde als floatval
1 2 3 4 5 6 | $strPrice = shopp('cart', 'total', 'return=true'); $strRawPrice = str_replace(',', '.', substr($strPrice, 1)); $fltPrice = floatval($strRawPrice); echo $fltPrice * (19/119); ?> |
1 2 3 4 5 6 7 8 | $formule = shopp('cart','total','return=true'); // oftewel ¤getal $schoonmaken = str_replace(",",".",$formule); // vervang de komma door een punt...? $som = substr($schoonmaken,34); // html tekens weghalen $btw = $som / 119 * 19; // btw rekenen echo "€", round ($btw,2); // euro teken en afronden tot 2 deci. ?> |
Boven toch? Belastingdienst rond normaal gesproken naar boven afquote:Op donderdag 13 mei 2010 22:06 schreef GlowMouse het volgende:
http://nl3.php.net/number_format
btw wel altijd naar beneden afronden he?
ik meende naar boven, maar ik was het dus aan het proberen viaquote:Op donderdag 13 mei 2010 22:06 schreef GlowMouse het volgende:
http://nl3.php.net/number_format
btw wel altijd naar beneden afronden he?
1 2 3 4 5 6 7 8 | $formule = shopp('cart','total','return=true'); // oftewel ¤getal $schoonmaken = str_replace(",",".",$formule); // vervang de komma door een punt...? $som = substr($schoonmaken,34); // html tekens weghalen $btw = $som / 119 * 19; // btw rekenen $afronden = round ($btw,2); // euro teken en afronden tot 2 deci. echo "€", number_format($afronden, 2); ?> |
1 2 3 | echo '€' . money_format('%.2n', $som); ?> |
Daarvoor is dit topicquote:Op donderdag 13 mei 2010 22:13 schreef Dawnbreaker het volgende:
wil jullie trouwens al heel erg bedanken, want ik heb hier toch een tijdje mee zitten kutten... een post op !fok en het is binnen 15min opgelost!
i love you guys!
Nee, belasting mag je altijd in jouw voordeel afrondenquote:Op donderdag 13 mei 2010 22:07 schreef wobbel het volgende:
[..]
Boven toch? Belastingdienst rond normaal gesproken naar boven af
In dat geval dus http://nl.php.net/floor gebruiken.quote:Op donderdag 13 mei 2010 22:25 schreef GlowMouse het volgende:
[..]
Nee, belasting mag je altijd in jouw voordeel afronden
Heb het even nagezocht, en BTW is een uitzondering. Derde decimaal een 5 of hoger, dan naar boven afronden. Inkomstenbelasting mag je telkens op hele euro's in jouw voordeel afronden.quote:Op donderdag 13 mei 2010 22:27 schreef mstx het volgende:
[..]
In dat geval dus http://nl.php.net/floor gebruiken.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | voornaam, voorletters, achternaam, gebdatum, straatnaam, straatnummer, postcode, stad, telefoon, telefoonmobiel, email, geslacht, count(bestelling.id) AS totaal_orders FROM klanten LEFT JOIN bestelling ON bestelling.klant_id = klanten.id WHERE klanten.dealer_id = '43' ORDER BY klanten.achternaam DESC |
Sorry mijn glazen bol is stuk vandaag. Ik zal het morgen nog een keer proberen.quote:Op vrijdag 14 mei 2010 14:15 schreef Chandler het volgende:
IK zie iets niet.
Waarom krijg ik maar 1 resultaat met bv dit?
[ code verwijderd ]
Leuk boek ja. Ik heb de uitgave die erna kwam ook.quote:Op vrijdag 14 mei 2010 19:11 schreef Swetsenegger het volgende:
Ik vind dit wel een erg prettig beginners boek
http://www.bol.com/nl/p/n(...)001320470/index.html
Nope, helaas er bestaan wel 900 rijden aan de wherequote:
1 2 3 | $bericht = str_ireplace ( ">:)", "<img src=\"/img/smilies/duivels.gif\">", $bericht ); ?> |
Omdat het CTRL+C / V werk is, ik heb namelijk ook dingen als O en o erin zittenquote:Op zondag 16 mei 2010 17:35 schreef Trollface. het volgende:
Waarom stri_replace als er niets case-sensitive is?
Per ongeluk htmlspecialchars ervoor ipv erna?quote:Op zondag 16 mei 2010 17:37 schreef wobbel het volgende:
[..]
Omdat het CTRL+C / V werk is, ik heb namelijk ook dingen als O en o erin zitten
Maar raar...waarom werkt het bij mij niet....ff kijken
[update]
Voor |:{ geld hetzelfde...raar ding
Haha, ik had de regel met htmlspecialchars buiten het beeld getabtquote:Op zondag 16 mei 2010 17:41 schreef Roönaän het volgende:
[..]
Per ongeluk htmlspecialchars ervoor ipv erna?
Ik mis quotes?quote:Op zondag 16 mei 2010 17:32 schreef wobbel het volgende:
[ code verwijderd ]
Waarom replaced ie niks? Heb ik speciale karakters gebruikt die ik moet escapen ofzo? (en hoe escape ik ze dan? )
Jaja, ik moet ze nog een alt, height en width geven
1 2 3 4 5 6 7 8 | $this->addField('loginname', array('required' => true, 'minlength' => 3, 'maxlength' => 15 ) ); ?> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | $fieldvalue = trim($postvars[$field]); foreach($validation as $type => $value) { switch($type) { case 'required': $this->checkRequired($field, $fieldvalue, $value); break; case 'minlength': $this->checkMinLength($field, $fieldvalue, $value); break; case 'maxlength': $this->checkMaxLength($field, $fieldvalue, $value); break; } } ?> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | $fieldvalue = trim($postvars[$field]); foreach($validation as $type => $value) { $method = 'check' . $type; if(!isset($this->errors[$field])) { if(!method_exists(__CLASS__, $method)) { throw new Framework_Exception($type . ' is not a valid validation type'); } $this->$method($field, $fieldvalue, $value); } else { continue; } } ?> |
Leuk zo'n Fok Topic Tracker Updatequote:sh: no job control in this shell sh-3.00# MaKKaWi sh: MaKKaWi: command not found
Lijkt me qua opzet helemaal niet verkeerd. Ik zie alleen niet meteen hoe je aangeeft of een validatiepoging gelukt is en wat er gedaan wordt als een validatie mislukt.quote:Op dinsdag 18 mei 2010 18:44 schreef hamkaastosti het volgende:
hmm.. dit werkt.. maar of het de meest nette methode is
[ code verwijderd ]
Dat wordt natuurlijk afgehandeld in deze functies (waarvan hij de implementatie niet toont):quote:Op woensdag 19 mei 2010 23:10 schreef Light het volgende:
[..]
Lijkt me qua opzet helemaal niet verkeerd. Ik zie alleen niet meteen hoe je aangeeft of een validatiepoging gelukt is en wat er gedaan wordt als een validatie mislukt.
Ja, maar hoe? Een eventuele return value wordt niet gebruikt, dus ik neem aan dat er een andere manier is. Met exit() kun je een validatie wel stoppen, maar da's niet netjes. Verder kun je nog een exception gebruiken, maar die moet wel ergens worden opgevangen. En dan is ook nog de vraag of je doorgaat met valideren als er een veld ongeldige waarden bevat.quote:Op donderdag 20 mei 2010 02:05 schreef captaintokyo het volgende:
[..]
Dat wordt natuurlijk afgehandeld in deze functies (waarvan hij de implementatie niet toont):
$this->$method($field, $fieldvalue, $value);
ik hou een array met errors bij.quote:Op woensdag 19 mei 2010 23:10 schreef Light het volgende:
[..]
Lijkt me qua opzet helemaal niet verkeerd. Ik zie alleen niet meteen hoe je aangeeft of een validatiepoging gelukt is en wat er gedaan wordt als een validatie mislukt.
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 | /** * checks if field matched a filter * @access private * @param <string> $field * @param <string> $fieldvalue * @param <string> $filter */ private function checkFilter($field, $fieldvalue, $filter) { switch($filter) { case 'email': if(!filter_var($fieldvalue, FILTER_VALIDATE_EMAIL)) { $this->errors[$field] = $this->locale['email']; } break; case 'num': break; case 'alnum': break; case 'date': break; case 'alpha': break; default: if(!preg_match('' . $filter . '', $fieldvalue)) { $this->errors[$field] = $this->locale['regex']; } } } ?> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | // hierin zit de array met de form velden en aan welke validatie ze moeten voldoen //en deze class extend de form class waarin de validatie code staat. $form = new User_Form_Register(); //a form was submitted if($this->registry->request->isPost()) { //form is valid. continue saving the user if($form->isValid($this->registry->request->getPostVars())) { $this->model->save($form->GetValues()); } //form is not valid. display it again with errors else { $this->registry->view->errors = $form->getErrors(); } } ?> |
1 |
1 |
1 |
En het idee is dat je later makkelijk een nieuw filter kunt bedenken en toevoegen? Dan zou ik die filterfuncties beperken tot de hoofdzaak, namelijk bepalen of de waarde al dan niet geldig is volgens het filter. Dat kan door true of false terug te geven. Dan hoef je, als je later een filter wilt toevoegen, niet meer uit te zoeken welke classvariabelen je moet aanpassen.quote:Op donderdag 20 mei 2010 12:35 schreef hamkaastosti het volgende:
[..]
ik hou een array met errors bij.
[ code verwijderd ]
ik moet hem nog verder afmaken maar dit is het idee voor elke checkFilterNaam
$this->locale is een array uit een geinclude php bestand.
Dus als je een veld password hebt, met als regels dat de lengte tussen 5 en 10 tekens moet zitten en dat er een cijfer en een letter in moet zitten, dan kan ik 4 keer een foutmelding krijgen dat de ingevoerde waarde niet klopt. "stop" -> te kort, min 5 tekens vereist. "chocoladefabriek" -> te lang, max 10 tekens vereist. "geheim" -> fout, moet ten minste 1 cijfer bevatten. "123456" -> fout, moet ten minste 1 letter bevatten. "g3h31m" -> goed!quote:het checken of een form valideert kan heel simpel in je controller
[ code verwijderd ]
Het werkt nu zo dat de validator alle formfields doorloopt. Zodra er in 1 field een error is skipped ie de rest van de validatie eisen voor dat veld en gaat hij door met het volgende veld. in $this->errors zitten dan per veld de eerste error die de validator vond.
Gewoon zorgen dat je alleen de bekenden velden in de database opslaat.quote:werkt als een tiet. moet alleen nog een check inbouwen dat voorkomt dat iemand de velden in de html aan gaat passen. Maar ik weet alle namen van de form velden dus dat moet geen probleem zijn.
Als ik een nieuw filter wil toevoegen dan voeg ik een extra item aan de switch toe en een voeg ik $this->locale['nieuwfilter] toe. dan zou het moeten werken. lijkt me niet al te lastig.quote:Op vrijdag 21 mei 2010 23:24 schreef Light het volgende:
[..]
En het idee is dat je later makkelijk een nieuw filter kunt bedenken en toevoegen? Dan zou ik die filterfuncties beperken tot de hoofdzaak, namelijk bepalen of de waarde al dan niet geldig is volgens het filter. Dat kan door true of false terug te geven. Dan hoef je, als je later een filter wilt toevoegen, niet meer uit te zoeken welke classvariabelen je moet aanpassen.
1 2 3 4 5 6 7 8 9 10 11 12 13 | if(!isset($this->errors[$field])) { if(!method_exists(__CLASS__, $method)) { throw new Framework_Exception($type . ' is not a valid validation type'); } if($this->$method($field, $fieldvalue, $value) == false) { $this->errors[$field] = $this->locale[$type]; } } ?> |
Ik wil graag dat ik per fout de juiste melding krijg te zien. dus veld is te kort, te lang e.d. Geen generieke melding dat het veld niet klopt. Vandaar ook de $this->locale;quote:Als een validatie mislukt, hoef je de rest van de validaties voor dat veld uiteraard niet te doen. En een eventuele melding zou je als derde parameter bij de functie addField() kunnen toevoegen. Mislukt de validatie, dan krijg je die melding te zien. Die check-functies roep je niet zelf aan, dat gaat waarschijnlijk via iets als validateField() en die kan wel zorgen dat de melding in $this->errors[] wordt geplaatst.
[..]
1 2 3 4 5 6 7 8 9 10 11 | $this->locale['required'] = 'Dit is een verplicht veld'; $this->locale['minlength'] = 'Dit veld moet minimaal %s karakters hebben'; $this->locale['maxlength'] = 'Dit veld mag maximaal %s karakters hebben'; $this->locale['equalto'] = 'Dit veld moet hetzelfde zijn'; $this->locale['email'] = 'Een geldig emailadres is vereist'; $this->locale['alnum'] = 'Vul een geldige alphanumerieke waarde in'; $this->locale['num'] = 'Vul een geldig numeriek getal in'; $this->locale['alpha'] = 'Vul enkel letters in'; $this->locale['regex'] = 'Dit veld bevat ongeldige karakters'; ?> |
Op dit moment zou je meerdere keren een foutmelding kunnen krijgen ja omdat het script stopt met valideren zodra bijvoorbeeld het veld te kort is. Ik heb zitten denken om alle fouten te verzamelen en die onder elkaar achter het veld weer te geven na een POST met fouten maar dan krijg je dingen als 'dit veld is verplicht' samen met 'dit veld moet langer dan 3 karakters zijn' en dat lijkt me ook wat krom. Ik ben wel van plan om tooltips te gaan gebruiken met daarin de eisen voor het veld. De bedoeling is dat deze class ook de benodige jquery gaat genereren om clientside validatie te doen.quote:Dus als je een veld password hebt, met als regels dat de lengte tussen 5 en 10 tekens moet zitten en dat er een cijfer en een letter in moet zitten, dan kan ik 4 keer een foutmelding krijgen dat de ingevoerde waarde niet klopt. "stop" -> te kort, min 5 tekens vereist. "chocoladefabriek" -> te lang, max 10 tekens vereist. "geheim" -> fout, moet ten minste 1 cijfer bevatten. "123456" -> fout, moet ten minste 1 letter bevatten. "g3h31m" -> goed!
[..]
dat heb ik inderdaad al gefixed. ik weet alle velden dus als ik over de velden heen loop en het veld bestaat niet dan is er mee gekloot.quote:Gewoon zorgen dat je alleen de bekenden velden in de database opslaat.
1 2 3 4 5 6 7 | //check if the form has been tampered with by altering the input names if(!isset($postvars[$field])) { throw new Framework_Exception('required form field: ' . $field . ' was not found in $_POST.'); } ?> |
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 | CREATE TABLE IF NOT EXISTS `users_groups` ( `id` int(11) NOT NULL AUTO_INCREMENT, `title` varchar(50) NOT NULL, `lastupdate` datetime NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1; // tabel voor gebruikers aan een groep koppelen CREATE TABLE IF NOT EXISTS `users_groups_link` ( `user_id` int(10) unsigned NOT NULL, `group_id` int(10) unsigned NOT NULL, `timestamp` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00' ON UPDATE CURRENT_TIMESTAMP, KEY `gebruiker_id` (`user_id`,`group_id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1; // link voor groepen & rechten CREATE TABLE IF NOT EXISTS `users_groups_rights_link` ( `group_id` int(10) unsigned NOT NULL, `right_id` int(10) unsigned NOT NULL, KEY `groep_id` (`group_id`,`right_id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1; // tabel voor rechten CREATE TABLE IF NOT EXISTS `users_rights` ( `id` int(11) NOT NULL AUTO_INCREMENT, `title` varchar(50) NOT NULL, `value` varchar(50) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1; // link voor rechten die aan een specifieke gebruiker gekoppeld worden. CREATE TABLE IF NOT EXISTS `users_rights_link` ( `user_id` int(10) unsigned NOT NULL, `right_id` int(10) unsigned NOT NULL, `lastupdate` datetime NOT NULL, KEY `gebruiker_id` (`user_id`,`right_id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1; |
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 | if(isset($_POST['submit'])) { if (isset($_FILES['foto']) && $_FILES['foto']['error'] == UPLOAD_ERR_OK) { echo "Bedankt voor het uploaden, maar ik doe er even niets mee. Doei!"; } else { echo "Er is helaas iets fout gegaan bij het uploaden. Probeer het nog eens!"; } $temp_map = "/uploads/"; $temp_naam = $_FILES['foto']['tmp_name']; $result = move_uploaded_file($temp_naam, $temp_map); $bestand = $_FILES['foto']; //het bestand list($width,$height,$c,$d) = getimagesize($bestand); //het formaat van dat bestand switch($c) { case 1: //als het een gif is $plaatje = imagecreatefromgif($bestand); //het plaatje openen in $plaatje break; case 2: //jpg $plaatje = imagecreatefromjpeg($bestand); break; case 3: //png $plaatje = imagecreatefrompng($bestand); break; } } ?> |
Een else helemaal onderaan, sorry ik ben echt nog newbie hoor. Meer trial and error, maar ik weet geen opties meer.quote:Op maandag 31 mei 2010 21:32 schreef Roönaän het volgende:
Wat dacht je van exit/return toevoegen in de eerste if?
Je weet zeker dat het <input type="file" name="foto" /> is?quote:Op maandag 31 mei 2010 21:36 schreef boem-dikkie het volgende:
[..]
Een else helemaal onderaan, sorry ik ben echt nog newbie hoor. Meer trial and error, maar ik weet geen opties meer.
En dat het <form action="#" method="post" enctype="multipart/form-data"> is?quote:Op maandag 31 mei 2010 22:36 schreef Trollface. het volgende:
[..]
Je weet zeker dat het <input type="file" name="foto" /> is?
Jups. Sinds wanneer is het een probleem om 30x20 records te hebben in een DB?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 | <table width="273" border="0"> <tr> <td width="80">Product:</td> <td width="183"><input name="product" type="text" disabled="disabled" id="product" value="<?php echo $row['name']; ?>" readonly="readonly" /></td> </tr> <tr> <td>Naam:</td> <td><input name="naam" type="text" id="naam" /></td> </tr> <tr> <td>E-mail:</td> <td><input name="email" type="text" id="email" /></td> </tr> <tr> <td>Adres:</td> <td><input name="adres" type="text" id="adres" /></td> </tr> <tr> <td>Postcode:</td> <td><input name="postcode" type="text" id="postcode" /></td> </tr> <tr> <td>Plaats:</td> <td><input name="plaats" type="text" id="plaats" /></td> </tr> <tr> <td colspan="2"><input type="submit" name="Submit" value="Verzenden" /></td> </tr> </table> </form> |
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 | $recipient=("mirelmirelmirel@gmail.com"); $subject="QRC besteld"; . $content= $product = $_REQUEST["product"]; $naam = $_REQUEST["naam"]; $email = $_REQUEST["email"]; $adres = $_REQUEST["adres"]; $postcode = $_REQUEST["postcode"]; $plaats = $_REQUEST["plaats"]; $message; mail($recipient, $subject, $content); echo "Uw mail is met succes verstuurd!"; header( "Location: www.link.nl ); ?> |
1 2 3 4 5 6 | $to = "Email adres"; $subject = "Leuk mailtje"; $naam = $_POST['naam']; $adres = $_POST['adres']; ?> |
1 2 3 | mail($to, $subject, $body); |
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 | $to=("mirelmirelmirel@gmail.com"); $subject="QRC besteld"; $product = $_POST["product"]; $naam = $_POST["naam"]; $email = $_POST["email"]; $adres = $_POST["adres"]; $postcode = $_POST["postcode"]; $plaats = $_POST["plaats"]; $body = " Product: $product\n Naam: $naam\n E-mail: $email\n Adres: $adres\n Postcode: $postcode\n Plaats: $plaats\n "; mail($to, $subject, $body); echo "Uw mail is met succes verstuurd!"; <!-- header( "Location: http://www.mirelmasic.nl/info_contact.html" ); --> ?> |
1 2 | { |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | $body = "Product:" . $product . "Naam:" . $naam . "E-mail:" . $email . "Adres:" . $adres . "Postcode:" . $postcode . "Plaats:" . $plaats . mail($to, $subject, $body); echo "Uw mail is met succes verstuurd!"; ?> |
Ja? Ik kríjg de email wel binnen verder, alleen hij laat de strings niet zien.quote:Op dinsdag 1 juni 2010 11:08 schreef boem-dikkie het volgende:
Zet dit eens boven aan je php code onder <?php
[ code verwijderd ]
1 2 3 4 5 6 7 8 9 | $body = "Product: $product\n Naam: $naam\n E-mail: $email\n Adres: $adres\n Postcode: $postcode\n plaats: $plaats\n "; ?> |
Jawel, hij leest de string wel uit. En je moet method="post" toevoegen aan je form tag, als je dat niet doet gaat het via een get.quote:Op dinsdag 1 juni 2010 11:21 schreef Mirel het volgende:
Werkt niet. Als het tussen aanhalingstekens staat, dan leest ie de string toch niet uit?
1 2 3 4 5 6 7 8 9 10 | $body = " Product: {$product}\n Naam: {$naam}\n E-mail: {$email}\n Adres: {$adres}\n Postcode: {$postcode}\n Plaats: {$plaats}\n "; ?> |
KISS.quote:Op dinsdag 1 juni 2010 10:20 schreef Chandler het volgende:
Sinds nu niet iig... maar dat was de vraagstelling niet helemaal Roonaan, ik wil mijn ACL uitbreiden zodat ik ook forums etc er aan kan toevoegen
http://www.opta.nl/nl/act(...)/publicatie/?id=3166quote:Op dinsdag 1 juni 2010 20:25 schreef wobbel het volgende:
Met PHP zou ik graag een 06 nummer willen valideren...dat ie met 06 moet beginnen en met 8 cijfers moet eindigen lijkt me logisch, maar zijn er nog meer dingen waarmee ik rekening moet houden?
Ik weet dat 06-12341234 niet kan omdat het cijfers 3 tm 6 en 7 t/m 10 niet gelijk mogen zijn (smsen naar 1234 is hetzelfde als smsen naar 06-12341234) maar zijn er nog meer dingen om rekening mee te houden?
(Ik wil nummers eerst goed valideren voordat er een sms heen wordt gestuurd )
- gaat googlen -quote:Op dinsdag 1 juni 2010 20:29 schreef PiRANiA het volgende:
[..]
http://www.opta.nl/nl/act(...)/publicatie/?id=3166
• Mobiele nummers. In 2009 is het totaal aantal uitgegeven mobiele nummers opgelopen tot 49.3 miljoen. Dit is 82,2% van de beschikbare 06-nummers. In 2008 was dit nog 77,3%. Om de voorraad mobiele nummers uit te breiden, kan het ministerie van Economische Zaken de reeksen 06-0 en 06-9 vrijgeven voor uitgifte.
--hoe weet je dat trouwens van die shortcodes? Weet je dat 100% zeker? bron? --
Thnxquote:Op dinsdag 1 juni 2010 20:46 schreef hamkaastosti het volgende:
http://wiki.phpfreakz.nl/(...)rlands_mobiel_nummer
quote:Op dinsdag 1 juni 2010 12:13 schreef Roönaän het volgende:
[..]
KISS.
Either way, een ACL is een rechtenprofiel. Niets houdt je tegen om dezelfde ACL op meerdere fora's toe te passen.
Luie mods zijn lui.quote:Op woensdag 2 juni 2010 20:32 schreef TheDutchHero het volgende:
Moet deze topic niet centraal worden?
Die heb ik hier ook, maar ik vond 'm eigenlijk toch wat tegenvallen.quote:Op vrijdag 14 mei 2010 19:11 schreef Swetsenegger het volgende:
Ik vind dit wel een erg prettig beginners boek
http://www.bol.com/nl/p/n(...)001320470/index.html
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.(wel graag in het script aanpassen :@ )
Alvast bedankt ^O^KLIKKENNN http://dowdoon.mybrute.com
quote:Op donderdag 3 juni 2010 09:38 schreef Dowdoon het volgende:
Nog een vraagje.
Ik zit nu met het probleem dat als ik in een teksinvoerveld bv dit stukje tekst invul:
Test
om
te
kijken
of het werkt,
de enters niet goed meeneemt.
Dus alle tekst wordt achter elkaar gezet.
Weet iemand hier een makkelijke snelle oplossing voor?
scriptje waar het om gaatgoogle even op nl2brSPOILEROm 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.(wel graag in het script aanpassen )
Alvast bedankt
quote:Op donderdag 3 juni 2010 09:38 schreef Dowdoon het volgende:
Nog een vraagje.
Ik zit nu met het probleem dat als ik in een teksinvoerveld bv dit stukje tekst invul:
Test
om
te
kijken
of het werkt,
de enters niet goed meeneemt.
Dus alle tekst wordt achter elkaar gezet.
Weet iemand hier een makkelijke snelle oplossing voor?
scriptje waar het om gaatWaarom gebruik je geen CSS om de stijl van je div's te definiëren?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.(wel graag in het script aanpassen )
Alvast bedankt
Ik weet niks van Hindoes. Wel van Samoerai en andere dingen.
Die heb ik wel maar dat wilde niet goed werken vond ik.quote:Op donderdag 3 juni 2010 10:52 schreef boem-dikkie het volgende:
[..]
Waarom gebruik je geen CSS om de stijl van je div's te definiëren?
Omdat CSS basis is en je het jezelf beter meteen goed kan aanleren.quote:Op donderdag 3 juni 2010 13:36 schreef Dowdoon het volgende:
[..]
Die heb ik wel maar dat wilde niet goed werken vond ik.
Stukken tekst die op verkeerde plaatsen kwamen en niet verplaatst konden worden.
En ja ik zal vast wat fout hebben gedaan
Maar het werkt nu allemaal goed dusjaa waarom zou ik nog klagen?:P
1 |
dank voor je snelle reactie!quote:Op vrijdag 4 juni 2010 22:15 schreef ach het volgende:
komt door de $record3 = mysql_fetch_assoc($diensten_query0); waarmee je de eerste rij er al uit hebt gehaald
http://detectmobilebrowsers.mobi - hier staat een mooie libraryquote:Op zondag 13 juni 2010 20:09 schreef Crutch het volgende:
Een vraagje:
Hoe kan ik automatisch het type browser laten herkennen zodat ik de layout kan aanpassen naar een mobiel toestel bijvoorbeeld?
Het werktquote:Op zondag 13 juni 2010 20:15 schreef Trollface. het volgende:
[..]
http://detectmobilebrowsers.mobi - hier staat een mooie library
Veel plezier wat is er mis met PHP dan?quote:Op zondag 13 juni 2010 20:37 schreef Hondenbrokken het volgende:
Ik vind die w3schools-tutorials bijzonder slecht en verder vind ik dat hele php ook 3x niks. Ik denk dat ik voor RoR ga.
Sommige mensen zeggen dat het een hele fijne taal is en dat is het waarschijnlijk ook, dus vergeet mijn vorige post. Het is alleen dat ik Pyhton en Ruby gewend ben en ik niet kan wennen aan PHP.quote:Op zondag 13 juni 2010 20:39 schreef Trollface. het volgende:
[..]
Veel plezier wat is er mis met PHP dan?
Ah, meer gewenning dus. Snap het wel.quote:Op zondag 13 juni 2010 21:39 schreef Hondenbrokken het volgende:
[..]
Sommige mensen zeggen dat het een hele fijne taal is en dat is het waarschijnlijk ook, dus vergeet mijn vorige post. Het is alleen dat ik Pyhton en Ruby gewend ben en ik niet kan wennen aan PHP.
Het gaat dan om dingen zoals dollartekens voor variabelen en veel functionaliteit die ik gewend ben, maar niet terug kan vinden in de taal.
1 |
Dat heet een freelancerquote:Op zondag 13 juni 2010 21:59 schreef Crutch het volgende:
Ik wil verdomme gewoon een textfile typen met wat ik wil en dat een compiler daar gewoon een mooi stukkie software van bouwt.
Ziet er ongeveer zo uit:
[ code verwijderd ]
Is dat er al?
Nee die stelt vragen en wil geld hebben Ik ben Sinterklaas niet.quote:
Ziet er idd wel leuk uit. En zeker voor een beginneling.quote:Op maandag 14 juni 2010 19:44 schreef Gitaarmat het volgende:
Ik kan nergens een HTML voor dummies vinden dus ik stel hier mijn vraag wel.
Poosje geleden een website gemaakt. Hij doet het bij mij goed. Geen fouten in de opmaak, geen blauwe randen om de links heen en alle lettertypes zijn hetzelfde.
Op school, waar ze 17" pc'tjes hebben ziet het er heel lelijk uit. Op een paar pagina's wordt het lettertype ineens groter? Plaatjes verspringen en de tekst loopt gewoon door, in tegenstelling tot wat ik gedaan heb met de P STYLE tag van 450px.
Ligt dit aan de browser? Aan de beeldschermen? Of is de code gewoon kut.
(Neem de website trouwens niet te serieus, ik ben een beginneling met programmeren maar ik vind de website er zelf wel grappig uitzien.)
IE6 wordt nog veel op scholen gebruiktquote:
De PHP-documentatie doorlezen op php.netquote:Op woensdag 16 juni 2010 19:07 schreef j95 het volgende:
Even een vraagje: Ik ben een totale noob met PHP, ik weet dus niks. Behalve de openingstags. Wat kan ik het best doen om het redelijk snel maar ook makkelijk te leren. Zonder dat ik het idee heb dat ik huiswerk maak Tips?
quote:Op woensdag 16 juni 2010 19:18 schreef Trollface. het volgende:
[..]
De PHP-documentatie doorlezen op php.net
School en boek. Er zijn boeken die bijvoorbeeld een soort webwinkel doorlopen. Dan leer je de basis wel.quote:
quote:Op donderdag 17 juni 2010 01:00 schreef Trollface. het volgende:
PHP-boeken zijn trouwens kut, 9/10 keer zit er bijvoorbeeld een SQL injection of XSS-exploit in die opdrachten.
Het zou je wat moeten gaan zeggen .quote:Op donderdag 17 juni 2010 07:38 schreef j95 het volgende:
[..]
Dat zegt me niks dus ik denk toch dat ik voor een boek ga. Kan je ook onderweg wat lezen enzo. Iedergeval bedankt voor de hulp en als ik vragen heb zal ik jullie wel lastig vallen
quote:Op vrijdag 18 juni 2010 00:13 schreef wobbel het volgende:
Als ik de volgende string heb:
$string = "Roflcopter haxxor 1337";
Hoe zorg ik ervoor dat dat ik de tekst (roflcopter haxxor) als $tekst krijg en 1337 als $getal.
De string die ik heb moet met een regex ofzo opgesplits worden in $tekst en $getal.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | $string = "Roflcopter haxxor 1337"; $getal = ''; $tekst = ''; for($i = 0; $i < strlen($string); $i++){ if(is_numeric($string{$i})){ $getal .= $string{$i}; }else{ $tekst.= $string{$i}; } } echo $tekst . '<br>'; echo $getal; ?> |
En wat als de tekst 'Hall0 ik ben test 789' is?quote:
Ik ben met je eens dat er meestal een hoofdstuk veiligheid ontbreekt, maar je moet met me eens zijn dat het de leercurve een stuk stijler maakt als je direct SQL injection en cross-site-scripting beveiliging in de eerste 'hello world' voorbeelden wil gaan bouwen.quote:Op donderdag 17 juni 2010 01:00 schreef Trollface. het volgende:
PHP-boeken zijn trouwens kut, 9/10 keer zit er bijvoorbeeld een SQL injection of XSS-exploit in die opdrachten.
Ik heb multisafepay geimplementeerd. Op zich relatief eenvoudig en redelijk gelijk aan ideal basic implementatie, alleen het afvangen van foutmeldingen vereist wat meer moeite. En documentatie is kut. Maar ik vind de documentatie bij elke betaalmethode kut eigenlijk.quote:Op maandag 14 juni 2010 17:48 schreef wobbel het volgende:
Via welke toko's kan ik ervoor zorgen dat ik creditcard betalingen kan ontvangen in mijn webshop?
ogone heb ik gevonden en 2checkout maar verder nog helemaal niks.
Iemand ervaringen met het intergreren van creditcard betalingen?
Yep, 4 moet je echt niet mee beginnen dat is al veel te oud en dan leer je alles verkeerd.quote:Op vrijdag 18 juni 2010 13:45 schreef j95 het volgende:
Ik heb even een boek gehaald bij de bieb, het is alleen wel van PHP 4. Is dat erg? Kon niks anders vinden..
1 2 3 | $melding = implode(" - ", $alarmtekst); ?> |
1 2 3 | $melding = implode(" - ", $alarmtekst) . ' '; ?> |
Nee, maar ik gebruik ze altijd omdat sneller typen, en ietsjes sneller qua executie van script.quote:Op maandag 21 juni 2010 00:20 schreef F4T4L_3RR0R het volgende:
Thanks!
Is er nog een specifieke reden dat ik single quotes moet gebruiken?
Is dit de correcte manier om de spatie weer weg te halen?quote:
1 2 3 | $bericht = substr("[" . $tijd . "] " . rtrim($melding), 0, 160); ?> |
1 2 3 | if ($capcode == "1111") { ?> |
1 2 3 | if ($capcode == "1111") || ($capcode == "2222") || ($capcode == "3333") { ?> |
1 2 3 | if ($capcode == "1111" || "2222" || "3333") { ?> |
Ja, en zo:quote:Op maandag 21 juni 2010 23:32 schreef F4T4L_3RR0R het volgende:
[..]
Is dit de correcte manier om de spatie weer weg te halen?
[ code verwijderd ]
Edit:
Kan ik een IF naar meerdere dingen laten kijken, of is het beperkt tot 1 ding?
[ code verwijderd ]
Wil ik graag het volgende aan toevoegen:
[ code verwijderd ]
Of moet dat zo?
[ code verwijderd ]
1 2 3 4 5 | if($capcode == "1111" || $capcode == "2222" || $capcode == "3333") { // foo } ?> |
Ja. rtrim haalt rechts spaties, enters, tabs enzovoort weg.quote:Op maandag 21 juni 2010 23:32 schreef F4T4L_3RR0R het volgende:
[..]
Is dit de correcte manier om de spatie weer weg te halen?
[ code verwijderd ]
Je kunt voorwaarden aan elkaar koppelen met "AND" en "OR". Je kunt ook "&&" en "||" gebruiken.quote:Kan ik een IF naar meerdere dingen laten kijken, of is het beperkt tot 1 ding?
Dat is goed.quote:Wil ik graag het volgende aan toevoegen:
[ code verwijderd ]
Dat werkt niet, omdat voorwaarden omgezet worden in een boolean en de || een operator is, die op booleans werkt. Je zult een goede tutorial moeten lezen om precies te snappen wat er allemaal gebeurt.quote:Of moet dat zo?
[ code verwijderd ]
quote:<?php
if (in_array($capcode, array( "1111", "2222", "3333")) {
?>
Nee, dat is niet goed - kijk eens naar de haakjes.quote:
1 2 3 4 5 6 7 8 9 10 | if ( $capcode == "1111" // omschrijving 1 || $capcode == "2222" // omschrijving 2 || $capcode == "3333" // omschrijving 3 ) { ?> |
1 2 3 | if ($capcode == "1111" // omschrijving 1 || $capcode == "2222" // omschrijving 2 || $capcode == "3333" // omschrijving 3) { ?> |
Het eerste werkt omdat het commentaar al bij het inlezen verwijderd wordt.quote:Op dinsdag 22 juni 2010 02:06 schreef F4T4L_3RR0R het volgende:
Dank wederom!
Nog een vraagje.
Mag ik omschrijvingen (// omschrijving) plaatsen achter iets wat niet wordt afgesloten met een punt-komma?
Voorbeeld:
[ code verwijderd ]
Wat feitelijk het volgende is (zelfde code, maar dan in één regel):
[ code verwijderd ]
Het tweede voorbeeld gaat niet werken, maar het eerste voorbeeld wel? Worden de regels bij het eerste voorbeeld 1 voor 1 ingelezen waardoor het wel werkt?
Tip: gebruik een editor met syntaxcodering. Dan zie je dat de hele regel vanaf // dezelfde kleur krijgt. Dat klopt, want // is commentaar tot het einde van de regel. Dus alles vanaf // wordt genegeerd.quote:Op dinsdag 22 juni 2010 02:06 schreef F4T4L_3RR0R het volgende:
Dank wederom!
Nog een vraagje. :@
Mag ik omschrijvingen (// omschrijving) plaatsen achter iets wat niet wordt afgesloten met een punt-komma?
Voorbeeld:
[ code verwijderd ]
Wat feitelijk het volgende is (zelfde code, maar dan in één regel):
[ code verwijderd ]
Het tweede voorbeeld gaat niet werken, maar het eerste voorbeeld wel? Worden de regels bij het eerste voorbeeld 1 voor 1 ingelezen waardoor het wel werkt?
1 2 3 | if ($capcode == "1111" /* omschrijving 1 */ || $capcode == "2222" /* omschrijving 2 */ || $capcode == "3333" /* omschrijving 3 */ ) { ?> |
1 2 3 4 5 6 7 | <div id='divCont'> <div id='divHeader'></div> <div id="divMenu"></div> <div name='divContent' ID='divContent'></div> </div> </BODY> |
Ik doe dit altijd maar dmv een achtergrond image in de container.quote:Op dinsdag 22 juni 2010 10:12 schreef GI het volgende:
Ik zit niet helemaal in het juiste topic. Maar, ik vraag het toch even hier omdat de meeste mensen hier ook erg vloeiend zijn in CSS.
Ik heb deze constructie
[ code verwijderd ]
Ik krijg het niet voor elkaar dat divContent zijn border stretched naar hetgeen dat niet fysiek in beeld is.
Zodra ik ga scrollen zie ik hetvolgende :
[ afbeelding ]
Kan iemand mij het css truukje vertellen om dit probleem op te lossen ?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | { min-height: 100%; height:100%; background-color:#EFDF92; clear:left; border:1px solid #AFAEAC; clear:left; border-left:1px solid #000; border-right:1px solid #000; } #divContent{ clear:both; background-color:#FEF6E2; height:100%; padding-left:3px; padding-right:3px; } |
Dat is de truuk die ik achter de hand heb. Ware het niet dat ik in principe voor verschillende gebruikers verschillende kleurstellingen in het leven wil kunnen roepen. En dit misschien ook via een gebruikerinstelling wil kunnen verwerken. Als ik het dan met een image oplos dan ga ik mezelf meer werk op de hals halen omdat ik voor die kleurinstellingen een 1px image moet gaan maken.quote:Op dinsdag 22 juni 2010 10:14 schreef Swetsenegger het volgende:
[..]
Ik doe dit altijd maar dmv een achtergrond image in de container.
1 2 3 4 5 | DIT IS REGEL 2 DIT IS REGEL 3 DIT IS REGEL 4 |
Uit een bestand of uit een string?quote:Op dinsdag 22 juni 2010 14:27 schreef F4T4L_3RR0R het volgende:
Bestaat er iets in PHP waarmee ik alleen de eerste regel kan uitlezen? Zonder te exploden?
Voorbeeld van de input:
[ code verwijderd ]
Ik wil alleen regel 1 hebben.
1 |
1 |
1 |
1 2 3 4 5 | VALUES ('c4ca4238a0b923820dcc509a6f75849b', '2010-08-13', 'en', 'eccbc87e4b5ce2fe28308fd9f2a7baf3') ('c81e728d9d4c2f636f067f89cc14862c', '2010-08-13', 'en', 'a87ff679a2f3e71d9181a67b7542122c') 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 '('c81e728d9d4c2f636f067f89cc14862c', '2010-08-13', 'en', 'a87ff679a2f3e71d9181a6' at line 1 |
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 | $db->execQuery('DELETE FROM users'); $db->execQuery('ALTER TABLE users AUTO_INCREMENT = 0'); $query = 'INSERT INTO users (device_token, expiration_date, language, device_identifier) VALUES'; $start = 0; $count = 20000; for ($i = $start; $i < $start + $count; $i++) { $device_token = md5($i); $identifier = md5($i + $count); $query .= sprintf(' (%s, %s, %s, %s)', $db->smartQuote($device_token), $db->smartQuote('2010-08-13'), $db->smartQuote('en'), $db->smartQuote($identifier)); if ($i + 1 < $count) $query .= ','; } try { $db->execQuery($query); } catch (Exception $e) { echo $e->getMessage(); } echo $query; ?> |
1 |
Dat was 'm inderdaad, thanks. Maar ik heb nu een nieuw probleemquote:Op dinsdag 22 juni 2010 21:28 schreef Light het volgende:
Iets leesbaarder:
[ code verwijderd ]
Er mist een komma na de eerste set values.
values (...), (...)
1 2 3 4 5 6 7 | { $device_token = md5($i); $identifier = md5($i + $count); $query .= sprintf(' (%s, %s, %s, %s)', $db->smartQuote($device_token), $db->smartQuote('2010-08-13'), $db->smartQuote('en'), $db->smartQuote($identifier)); if ($i + 1 < $count) $query .= ','; } |
1 2 3 4 5 6 7 | { $device_token = md5($i); $identifier = md5($i + $count); $values[] = sprintf(' (%s, %s, %s, %s)', $db->smartQuote($device_token), $db->smartQuote('2010-08-13'), $db->smartQuote('en'), $db->smartQuote($identifier)); } $query .= implode(', ', $values); |
Sorry, beetje onduidelijk. De query gaat nog heeel lang door, ik heb 'm ff ingekort. Maar je kan aan de PHP code zien dat het een juiste query oplevert. Dat moet ook, want bij $count = 10.000 werkt het, maar bij $count = 20.000 niet meer.quote:Op dinsdag 22 juni 2010 21:33 schreef hamkaastosti het volgende:
moet die laatste , d'r niet af?
Maar de foutmelding begint met "Could not execute query: ". Meestal staat er dan aan het eind (na de query) nog meer info over waarom die query niet kon worden uitgevoerd. Geheugen zou kunnen, maar je kunt er natuurlijk ook meer queries van maken om dat probleem op te lossen.quote:Op dinsdag 22 juni 2010 21:36 schreef retorbrapi het volgende:
[..]
Sorry, beetje onduidelijk. De query gaat nog heeel lang door, ik heb 'm ff ingekort. Maar je kan aan de PHP code zien dat het een juiste query oplevert. Dat moet ook, want bij $count = 10.000 werkt het, maar bij $count = 20.000 niet meer.
1 |
1 2 3 4 | [1] BLA [2] BLA [3] BLA |
1 2 3 4 | $eersteregel = explode("\n", $body); $alarmering = explode(" - ", $eersteregel[0]); ?> |
1 2 3 | $alarmering = explode(" - ", explode("\n", $body)); ?> |
Jaaaaaa, dat is 'm.quote:Op woensdag 23 juni 2010 00:37 schreef Light het volgende:
var_dump() ?
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 op Nadeel 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
Niet Ik heb ze nooit gebruikt maar ging er vanuit dat ze gelijk zouden werkenquote: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:
[..]
Niet Ik 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 weet En 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.)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
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 gepakt . Dus puur hoe iemands standaard werkweek er uit ziet.quote: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 weet En 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. Nee, dat gaat inderdaad lastig. Ik had alleen maar een paar laatste posts gelezen en dacht dat we het over specifieke tijdstippen hadden.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: |