16 Nov
Lors de la rédaction d’un fichier XML, il est très fortement conseillé de créer un fichier de validation, afin de s’assurer que la syntaxe du document est rigoureusement respectée. Pour ce faire, on peut soit utiliser des DTD (Document Type Definition) ou des XSD (XML Schema Definition). Les XSD ont l’avantage d’être beaucoup plus simple à écrire.
Il est possible de vérifier la validité du document XSD avec le validateur du W3C, ainsi que celle du XML, il n’est en revanche pas possible de vérifier les liens entre le XML et le XSD : telle balise possède-t-elle bien les bons attributs ? les bons noeuds enfants ? Il nous faut donc un outil se basant sur notre XSD. Il s’agit de xmllint.
Cette commande, qui possède aussi d’autres fonctionnalités, s’utilise de la façon suivante :
Vous aurez alors une liste d’erreurs éventuelles, qu’en tant que bon développeur vous vous empresserez de corriger. ;)
6 Nov
Ayant une nouvelle fois complètement migré de mon Windows Vista bien trop peu réactif vers une Ubuntu 8.10 (mon précédent billet n’a fait qu’attiser mes envies :p), j’ai donc dû réinstaller entièrement mon serveur de développement Apache2. Et plus particulièrement le module LDAP, nécessaire pour différents développements au sein de SUPINFO.
Sous Ubuntu, cela est très simple et se réalise en trois étapes. Tout d’abord, il faut installer le paquet du module.
Une fois ceci fait, on active le module au sein de la configuration d’Apache. Deux solutions : soit nous y allons en warrior, et nous éditons à la main le fichier de configuration (un simple point virgule à enlever), soit on y va tout en finesse avec la commande a2enmod :
Enfin, il ne nous reste plus qu’à relancer notre serveur.
Et c’est tout ! Vous pouvez donc à présent vous connecter via PHP à votre serveur LDAP ! :)
27 Oct
Faisant suite à l’article sur la création d’;une table MySQL de pays, voici un deuxième script d’importation qui lui vous permettra d’ajouter dans votre base de données tous les départements français.
Trois colonnes, simplement et efficacement :
Comme d’habitude, la table est encodée en UTF-8, avec le moteur InnoDB, pour pouvoir gérer les clefs étrangères, utilisées presqu’obligatoirement avec ce genre de tables.
Table MySQL des départements français
[Edit du 28 octobre : mise en ligne de la bonne version]
24 Oct
Et voici une petite réponse d’Apple aux publicités promotionnelles de Windows Vista, dans lesquelles nous pouvions voir Bill Gates et Jerry Seinfeld. Des publicités des plus étranges, pour lesquelles je dois avouer ne pas avoir tout compris. Je vous laisse juger la réponse de la Pomme.
Pas complètement fictive cette publicité, vous ne trouvez pas ? :p
21 Oct
Dans le cas où vous souhaiteriez réaliser votre propre agrégateur de flux RSS en PHP 5 objet, une méthode très simple s’offre à vous, grâce à l’extension SimpleXML. Cette extension permet de naviguer très simplement dans vos fichiers XML, dont un flux RSS fait partie.
Tout d’abord, petit rappel de la structure d’un flux RSS :
<rss version=”2.0″>
<channel>
<title>Jonathan Petitcolas</title>
<description>Les fantasques tribulations d’un geek déluré - Flux RSS</description>
<lastBuildDate>Wed, 27 Sep. 2008 00:30:30 -0700</lastBuildDate>
<link>http://www.jonathan-petitcolas.com</link>
<item>
<title>Mon dernier article</title>
<description>Un dernier article parlant d’un flux RSS</description>
<pubDate>Wed, 27 Sep. 2008 00:30:30 -0700</pubDate>
<link>http://www.jonathan-petitcolas.com/</link>
</item>
</channel>
</rss>
Comme on peut le constater, le fichier est relativement simple. Toutes les news d’un site sont dans des balises item. Il vous suffit donc de les récupérer, et de les parcourir. Au choix, soit vous pouvez utiliser des expressions régulières (solution très bourrine, mais qui fonctionnera), soit on utilise SimpleXML, une extension disponible depuis PHP 5 qui vous permettra de naviguer très simplement dans n’importe quel fichier XML.
Tout d’abord, chargeons notre fichier XML.
Une fois celui-ci chargé, nous pourrions afficher un print_r($xml); pour revoir la structure de notre fichier, telle que je l’ai écrite ci-dessus. Mais, nous ne voulons que naviguer parmi nos éléments. Pour ce faire, deux méthodes.
Soit on passe uniquement par des objets PHP crées automatiquement du fichier XML. Cette méthode, très simple et ne nécessitant aucune autre connaissance, a cependant le mauvais goût d’occuper pas mal de mémoire (on stocke vraiment TOUT). Par exemple, si on veut atteindre le titre du premier article :
L’autre méthode, un peu plus en finesse, nous permettra de libérer la variable $xml au profit d’une variable à l’empreinte mémoire plus faible, ne contenant que les balises qui nous intéressent. Pour ce faire, il faudra par contre des notions de X-Path. Pour ceux qui ne connaîtraient pas ce langage, sachez que pour récupérer tous les éléments item de notre fichier, il suffira d’utiliser l’instruction //item.
On peut alors afficher simplement les différents titres de nos news :
Et voilà ! Vous savez à présent comment parser très simplement un flux RSS avec SimpleXML. Libre à vous de recoder le nouveau NetVibes ! :p