Posts by Stefan.J

    @BrokenTrack: De naam staat voor Document Object Model. In javascript heb je deze inderdaad ook, onder andere van de huidige pagina in de variabele window.document.


    Ik heb alleen XML bestanden moeten parsen en valideren, maar voor het maken zou ik inderdaad ook DOM gebruiken. De codevoorbeelden heb ik achterwegen gelaten omdat het een blog is en geen tutorial. Codevoorbeelden zijn daarmee ook prima te vinden achter de links (php.net).


    Yoichi: Met XML Schema's (XSD) kun je onverwachtse parse errors dus voorkomen. Bijzonder handig!

    De blog hierboven is de eerste blog op CriminalsPoint. Het is de bedoeling dat blogs regelmatig door de crewleden worden gepost. Het doel van de blogs is een inkijk geven in techniek die je nog niet kende, of een andere interessante post.


    Plaats in de reacties wat je er van vind! Alles is welkom. Wat vind je van het niveau? Was je op de hoogte van de genoemde mogelijkheden? Wat vind je van de blog?

    In het kader van een nieuwe reeks Blogs die dieper op de materie van diverse programmeertalen ingaat, schreef ik het volgende artikel.


    Enkele weken terug heb ik een webservice geschreven welke HTTP requests met XML moest ontvangen van een, ook door mij gerealiseerde, Java applicatie. Deze webservice moet in de toekomst door meerdere applicaties worden geïmplementeerd. Om deze reden heb ik ervoor gekozen de te verwachten request en te verzenden responses te definiëren door middel van een XML schema.


    Een Java programmeur zal ervan op de hoogte zijn dat ondersteuning voor XML in Java met bijvoorbeeld JAXB prima en eenvoudig te realiseren is. Echter, omdat de webservice gerealiseerd moest worden in PHP heb ik gezocht naar de mogelijkheden van PHP omtrent XML. Meerdere libraries dienen zich op php.net aan.


    De eerste XML library die ik heb bekeken was SimpleXML. Het doel van deze library is het eenvoudig maken XML documenten te lezen en te schrijven in PHP. Dit brengt echter direct een nadeel met zich mee: De library is er niet in staat ingewikkelde acties uit te voeren op een XML bestand als de validate aan de hand van een XML schema. Hierdoor viel SimpleXML voor mij al snel af.


    Een andere library is XML Parser . Deze is echter niet object georiënteerd opgezet en heeft daarnaast niet de mogelijkheid om XML documenten te valideren, hierdoor viel de library al snel af.


    De derde library die ik heb bekeken was XMLReader. Deze library is wel in staat om een XML document te valideren met behulp van een XML schema. Echter, de manier waarop XMLReader een XML bestand parsed (met een pointer) was niet geschikt voor mijn situatie.


    Uiteindelijk ben ik beland bij de XML library DOM (Document Object Model). Deze library is verreweg de meest uitgebreide library die PHP biedt. De library is in staat om XML documenten te valideren aan de hand van een XML schema, en biedt een eenvoudige interface om XML documenten te lezen. Om deze redenen, en omdat DOM libraries ook in bijvoorbeeld Java beschikbaar zijn (op een soort gelijke manier) en ik daar al ervaring mee had, heb ik voor deze library gekozen.


    Opvallend aan alle libraries is dat ze gebruik maken van de onderliggende library libxml. Dit maakt het mogelijk voor alle libraries de errors op te vragen met de door libxml beschikbaar gestelde class en functies.


    Mocht je zelf XML documenten moeten schrijven of lezen met PHP raad ik aan om te beginnen met DOM. Mocht DOM niet voldoen omdat je bijvoorbeeld XPath nodig hebt, is het eenvoudig een DOM object om te zetten naar een SimpleXML object en andersom met de functies [func]dom_import_simplexml[/func] en [func]simplexml_import_dom[/func].


    De conclusie is in ieder geval eenvoudig: PHP is prima in staat om XML documenten te verwerken en te genereren!

    Ik denk dat hij prima weet wat jij bedoeld, maar jij niet wat hij bedoeld...


    Ik zie in je script zo snel geen fouten, maar door de opmaak en indenting is het ook onleesbaar...

    Ik zou het een beetje onderhoudbaar houden:



    Zo blijft de code een beetje schaalbaar. Overigens zou een object georienteerde database verbinding als PDO hier ook niet misstaan...

    Nja, je moet voor de gein eens kijken hoe deze lay-out in elkaar steekt. Alle onderdelen in de maincontent (dit ding) zijn rechts uitgelijnd (float)...

    Daarbij zal de Google Translate API binnenkort verdwijnen, en dan zit je natuurlijk met de gebakken peren. Vind het sowieso niet echt een mooie manier om dit op te lossen.


    Vraag je eens af waarom je graag je applicatie multi-language wilt maken. Is het wel echt nodig?

    Een integer representeert in een MySQL database een 32-bit getal (integer). De zogenaamde lengte van het veld is daarbij niet van belang.


    Het grotere integer type is inderdaad bigint, welke uit 64 bits bestaat. Alternatief kun je het veld unsigned maken, waardoor negatieve getallen niet zijn toegestaan, en hiermee het bereik van de integer wordt verdubbeld.

    Verbindingen met een IRC server heb ik geen ervaring mee, en ik ken het protocol dan ook niet. Je zult de errors eigenlijk allemaal één voor één onder de loep moeten nemen om ze op te lossen. Het volgende topic op stackoverflow lijkt in ieder geval al nuttige informatie te bevatten:


    http://stackoverflow.com/quest…/connection-reset-by-peer


    De host name lookup failure ligt meer voor de hand, om de een of andere reden kan de DNS niet worden geresolved.


    Het is wel interessant om te weten waar jou bot precies draait? Kan de connectie wegvallen? Hoe is dat bij de server waar je naartoe connect?