Soumettre la recherche
Mettre en ligne
Fichier XML et PHP5
•
1 j'aime
•
1,788 vues
Jean-Marie Renouard
Suivre
Présentation de la gestion de fichier XML avec PHP5
Lire moins
Lire la suite
Ingénierie
Signaler
Partager
Signaler
Partager
1 sur 28
Télécharger maintenant
Télécharger pour lire hors ligne
Recommandé
PHP5 et les fichiers
PHP5 et les fichiers
Jean-Marie Renouard
Client base de données en PHP5
Client base de données en PHP5
Jean-Marie Renouard
Le client HTTP PHP5
Le client HTTP PHP5
Jean-Marie Renouard
MVC / Frameworks PHP
MVC / Frameworks PHP
Jean-Marie Renouard
Email et PHP5
Email et PHP5
Jean-Marie Renouard
Présentation de PHP
Présentation de PHP
Jean-Marie Renouard
Syntaxe du langage PHP
Syntaxe du langage PHP
Jean-Marie Renouard
Gestion de formulaires en PHP
Gestion de formulaires en PHP
Jean-Marie Renouard
Recommandé
PHP5 et les fichiers
PHP5 et les fichiers
Jean-Marie Renouard
Client base de données en PHP5
Client base de données en PHP5
Jean-Marie Renouard
Le client HTTP PHP5
Le client HTTP PHP5
Jean-Marie Renouard
MVC / Frameworks PHP
MVC / Frameworks PHP
Jean-Marie Renouard
Email et PHP5
Email et PHP5
Jean-Marie Renouard
Présentation de PHP
Présentation de PHP
Jean-Marie Renouard
Syntaxe du langage PHP
Syntaxe du langage PHP
Jean-Marie Renouard
Gestion de formulaires en PHP
Gestion de formulaires en PHP
Jean-Marie Renouard
PHP 5 et la programmation objet
PHP 5 et la programmation objet
Jean-Marie Renouard
Le client FTP de PHP5
Le client FTP de PHP5
Jean-Marie Renouard
Configuration PHP5
Configuration PHP5
Jean-Marie Renouard
Javascript et JQuery
Javascript et JQuery
Jean-Marie Renouard
Sécurité et Quaité de code PHP
Sécurité et Quaité de code PHP
Jean-Marie Renouard
SQL et MySQL
SQL et MySQL
Jean-Marie Renouard
Cours php & Mysql - 1ére partie
Cours php & Mysql - 1ére partie
kadzaki
Pratique de la programmation en go
Pratique de la programmation en go
kader15
Presentation langage go_19022015
Presentation langage go_19022015
Stéphane Legrand
Formation PHP
Formation PHP
kemenaran
Trucs et astuces PHP et MySQL
Trucs et astuces PHP et MySQL
Damien Seguy
Php
Php
krymo
Bases de PHP - Partie 1
Bases de PHP - Partie 1
Régis Lutter
Etes vous-pret pour php8 ?
Etes vous-pret pour php8 ?
Christophe Villeneuve
Soutenance Zend Framework vs Symfony
Soutenance Zend Framework vs Symfony
Vincent Composieux
Cours php
Cours php
csskaled
Introduction à Symfony
Introduction à Symfony
Abdoulaye Dieng
Initiation au php
Initiation au php
Cédric Leclinche
Communications Réseaux et HTTP avec PHP
Communications Réseaux et HTTP avec PHP
julien pauli
Mieux Développer en PHP avec Symfony
Mieux Développer en PHP avec Symfony
Hugo Hamon
Symfony2 - Un Framework PHP 5 Performant
Symfony2 - Un Framework PHP 5 Performant
Hugo Hamon
Document Object Model ( DOM)
Document Object Model ( DOM)
Abdelouahed Abdou
Contenu connexe
Tendances
PHP 5 et la programmation objet
PHP 5 et la programmation objet
Jean-Marie Renouard
Le client FTP de PHP5
Le client FTP de PHP5
Jean-Marie Renouard
Configuration PHP5
Configuration PHP5
Jean-Marie Renouard
Javascript et JQuery
Javascript et JQuery
Jean-Marie Renouard
Sécurité et Quaité de code PHP
Sécurité et Quaité de code PHP
Jean-Marie Renouard
SQL et MySQL
SQL et MySQL
Jean-Marie Renouard
Cours php & Mysql - 1ére partie
Cours php & Mysql - 1ére partie
kadzaki
Pratique de la programmation en go
Pratique de la programmation en go
kader15
Presentation langage go_19022015
Presentation langage go_19022015
Stéphane Legrand
Formation PHP
Formation PHP
kemenaran
Trucs et astuces PHP et MySQL
Trucs et astuces PHP et MySQL
Damien Seguy
Php
Php
krymo
Bases de PHP - Partie 1
Bases de PHP - Partie 1
Régis Lutter
Etes vous-pret pour php8 ?
Etes vous-pret pour php8 ?
Christophe Villeneuve
Soutenance Zend Framework vs Symfony
Soutenance Zend Framework vs Symfony
Vincent Composieux
Cours php
Cours php
csskaled
Introduction à Symfony
Introduction à Symfony
Abdoulaye Dieng
Initiation au php
Initiation au php
Cédric Leclinche
Tendances
(18)
PHP 5 et la programmation objet
PHP 5 et la programmation objet
Le client FTP de PHP5
Le client FTP de PHP5
Configuration PHP5
Configuration PHP5
Javascript et JQuery
Javascript et JQuery
Sécurité et Quaité de code PHP
Sécurité et Quaité de code PHP
SQL et MySQL
SQL et MySQL
Cours php & Mysql - 1ére partie
Cours php & Mysql - 1ére partie
Pratique de la programmation en go
Pratique de la programmation en go
Presentation langage go_19022015
Presentation langage go_19022015
Formation PHP
Formation PHP
Trucs et astuces PHP et MySQL
Trucs et astuces PHP et MySQL
Php
Php
Bases de PHP - Partie 1
Bases de PHP - Partie 1
Etes vous-pret pour php8 ?
Etes vous-pret pour php8 ?
Soutenance Zend Framework vs Symfony
Soutenance Zend Framework vs Symfony
Cours php
Cours php
Introduction à Symfony
Introduction à Symfony
Initiation au php
Initiation au php
Similaire à Fichier XML et PHP5
Communications Réseaux et HTTP avec PHP
Communications Réseaux et HTTP avec PHP
julien pauli
Mieux Développer en PHP avec Symfony
Mieux Développer en PHP avec Symfony
Hugo Hamon
Symfony2 - Un Framework PHP 5 Performant
Symfony2 - Un Framework PHP 5 Performant
Hugo Hamon
Document Object Model ( DOM)
Document Object Model ( DOM)
Abdelouahed Abdou
Drupal 8, symfony
Drupal 8, symfony
jeUXdiCode
LemonLDAP::NG, un WebSSO libre en Perl !
LemonLDAP::NG, un WebSSO libre en Perl !
Clément OUDOT
1- XML généralités technologies xml1.pdf
1- XML généralités technologies xml1.pdf
KokitaKaty
HTML5 en projet
HTML5 en projet
Normandy JUG
Flex, une techno RIA incontournable pour les futures app web ?
Flex, une techno RIA incontournable pour les futures app web ?
GreenIvory
php2 : formulaire-session-PDO
php2 : formulaire-session-PDO
Abdoulaye Dieng
cours web developpement statique AJAX 2024
cours web developpement statique AJAX 2024
YounesOuladSayad1
[RMLL2017] Templer, Git, Bootstrap, PHP : des outils libres pour concevoir le...
[RMLL2017] Templer, Git, Bootstrap, PHP : des outils libres pour concevoir le...
Clément OUDOT
Apache Open SSL
Apache Open SSL
Anouar Loukili
Oxalide Workshop #4 - Docker, des tours dans le petit bassin
Oxalide Workshop #4 - Docker, des tours dans le petit bassin
Ludovic Piot
Oxalide Workshop #4 - Docker, des tours dans le petit bassin
Oxalide Workshop #4 - Docker, des tours dans le petit bassin
Oxalide
alphorm.com - Formation Configuration Exchange 2010 (70-662)
alphorm.com - Formation Configuration Exchange 2010 (70-662)
Alphorm
Presentation dublincore l3
Presentation dublincore l3
DublinCore2b
Lp web tp3_idse
Lp web tp3_idse
Karim Amane
Cours javascript
Cours javascript
krymo
HTML5... La révolution maintenant!
HTML5... La révolution maintenant!
CARA_Lyon
Similaire à Fichier XML et PHP5
(20)
Communications Réseaux et HTTP avec PHP
Communications Réseaux et HTTP avec PHP
Mieux Développer en PHP avec Symfony
Mieux Développer en PHP avec Symfony
Symfony2 - Un Framework PHP 5 Performant
Symfony2 - Un Framework PHP 5 Performant
Document Object Model ( DOM)
Document Object Model ( DOM)
Drupal 8, symfony
Drupal 8, symfony
LemonLDAP::NG, un WebSSO libre en Perl !
LemonLDAP::NG, un WebSSO libre en Perl !
1- XML généralités technologies xml1.pdf
1- XML généralités technologies xml1.pdf
HTML5 en projet
HTML5 en projet
Flex, une techno RIA incontournable pour les futures app web ?
Flex, une techno RIA incontournable pour les futures app web ?
php2 : formulaire-session-PDO
php2 : formulaire-session-PDO
cours web developpement statique AJAX 2024
cours web developpement statique AJAX 2024
[RMLL2017] Templer, Git, Bootstrap, PHP : des outils libres pour concevoir le...
[RMLL2017] Templer, Git, Bootstrap, PHP : des outils libres pour concevoir le...
Apache Open SSL
Apache Open SSL
Oxalide Workshop #4 - Docker, des tours dans le petit bassin
Oxalide Workshop #4 - Docker, des tours dans le petit bassin
Oxalide Workshop #4 - Docker, des tours dans le petit bassin
Oxalide Workshop #4 - Docker, des tours dans le petit bassin
alphorm.com - Formation Configuration Exchange 2010 (70-662)
alphorm.com - Formation Configuration Exchange 2010 (70-662)
Presentation dublincore l3
Presentation dublincore l3
Lp web tp3_idse
Lp web tp3_idse
Cours javascript
Cours javascript
HTML5... La révolution maintenant!
HTML5... La révolution maintenant!
Plus de Jean-Marie Renouard
Manuel De Securite 1.8 (Mise à jour avec DOCKER)
Manuel De Securite 1.8 (Mise à jour avec DOCKER)
Jean-Marie Renouard
ManuelDeSecurite-1.7.pdf
ManuelDeSecurite-1.7.pdf
Jean-Marie Renouard
Manuel de sécurité Linux
Manuel de sécurité Linux
Jean-Marie Renouard
Les structures de données PHP5
Les structures de données PHP5
Jean-Marie Renouard
Ssh cookbook v2
Ssh cookbook v2
Jean-Marie Renouard
Ssh cookbook
Ssh cookbook
Jean-Marie Renouard
Manuel de sécurisation d'un serveur Linux
Manuel de sécurisation d'un serveur Linux
Jean-Marie Renouard
Structure de données en PHP
Structure de données en PHP
Jean-Marie Renouard
Plus de Jean-Marie Renouard
(8)
Manuel De Securite 1.8 (Mise à jour avec DOCKER)
Manuel De Securite 1.8 (Mise à jour avec DOCKER)
ManuelDeSecurite-1.7.pdf
ManuelDeSecurite-1.7.pdf
Manuel de sécurité Linux
Manuel de sécurité Linux
Les structures de données PHP5
Les structures de données PHP5
Ssh cookbook v2
Ssh cookbook v2
Ssh cookbook
Ssh cookbook
Manuel de sécurisation d'un serveur Linux
Manuel de sécurisation d'un serveur Linux
Structure de données en PHP
Structure de données en PHP
Dernier
présentation sur la logistique (4).
présentation sur la logistique (4).
FatimaEzzahra753100
BOW 2024 - Logement des veaux laitiers en plein air
BOW 2024 - Logement des veaux laitiers en plein air
idelewebmestre
BOW 2024 -3-7- Impact bâtiment stress thermique Vaches laitières
BOW 2024 -3-7- Impact bâtiment stress thermique Vaches laitières
idelewebmestre
BOW 2024 - L'écurie ouverte : un concept inspirant pour la filière équine
BOW 2024 - L'écurie ouverte : un concept inspirant pour la filière équine
idelewebmestre
BOW 2024-3-10 - Batcool Petits ruminants
BOW 2024-3-10 - Batcool Petits ruminants
idelewebmestre
Support de cours La technologie WDM.pptx
Support de cours La technologie WDM.pptx
docteurgyneco1
Chapitre 2 : fondations et analyses de données géotechniques
Chapitre 2 : fondations et analyses de données géotechniques
angevaleryn
BOW 24 - De la réflexion de groupe à l'immersion dans des bâtiments porcins
BOW 24 - De la réflexion de groupe à l'immersion dans des bâtiments porcins
idelewebmestre
BOW 2024 - 3-5 - Des solutions numériques pour se préparer aux pics de chaleur
BOW 2024 - 3-5 - Des solutions numériques pour se préparer aux pics de chaleur
idelewebmestre
Agrivoltaïsme et filière ovine en Dordogne
Agrivoltaïsme et filière ovine en Dordogne
idelewebmestre
BOW 2024 - Dedans/Dehors quand voir ne suffit pas
BOW 2024 - Dedans/Dehors quand voir ne suffit pas
idelewebmestre
BOW 2024 - 3-3 - Adaptation des bâtiments pour ruminants au changement clima...
BOW 2024 - 3-3 - Adaptation des bâtiments pour ruminants au changement clima...
idelewebmestre
Compersseur d'air a vis atlas copco avec huile
Compersseur d'air a vis atlas copco avec huile
MBouderbala
BOW 2024 - 3-2 - Stress thermique impact vaches laitières
BOW 2024 - 3-2 - Stress thermique impact vaches laitières
idelewebmestre
BOW 2024 - 3-8 - Adaptation des bâtiments d'élevages de volailles au changeme...
BOW 2024 - 3-8 - Adaptation des bâtiments d'élevages de volailles au changeme...
idelewebmestre
Accompagnement de l'agrivoltaisme - Focus sur l'étude système en Merthe et Mo...
Accompagnement de l'agrivoltaisme - Focus sur l'étude système en Merthe et Mo...
idelewebmestre
Bow 2024 - Plein air à l'intérieur des bâtiments d'élevage de ruminants
Bow 2024 - Plein air à l'intérieur des bâtiments d'élevage de ruminants
idelewebmestre
CHAPITRE 2 VARIABLE ALEATOIRE probabilité.ppt
CHAPITRE 2 VARIABLE ALEATOIRE probabilité.ppt
bentaha1011
BOW 2024 -3-9 - Matelas de logettes à eau refroidie VL
BOW 2024 -3-9 - Matelas de logettes à eau refroidie VL
idelewebmestre
BOW 2024 - 3 1 - Les infrastructures équestres et le changement climatique
BOW 2024 - 3 1 - Les infrastructures équestres et le changement climatique
idelewebmestre
Dernier
(20)
présentation sur la logistique (4).
présentation sur la logistique (4).
BOW 2024 - Logement des veaux laitiers en plein air
BOW 2024 - Logement des veaux laitiers en plein air
BOW 2024 -3-7- Impact bâtiment stress thermique Vaches laitières
BOW 2024 -3-7- Impact bâtiment stress thermique Vaches laitières
BOW 2024 - L'écurie ouverte : un concept inspirant pour la filière équine
BOW 2024 - L'écurie ouverte : un concept inspirant pour la filière équine
BOW 2024-3-10 - Batcool Petits ruminants
BOW 2024-3-10 - Batcool Petits ruminants
Support de cours La technologie WDM.pptx
Support de cours La technologie WDM.pptx
Chapitre 2 : fondations et analyses de données géotechniques
Chapitre 2 : fondations et analyses de données géotechniques
BOW 24 - De la réflexion de groupe à l'immersion dans des bâtiments porcins
BOW 24 - De la réflexion de groupe à l'immersion dans des bâtiments porcins
BOW 2024 - 3-5 - Des solutions numériques pour se préparer aux pics de chaleur
BOW 2024 - 3-5 - Des solutions numériques pour se préparer aux pics de chaleur
Agrivoltaïsme et filière ovine en Dordogne
Agrivoltaïsme et filière ovine en Dordogne
BOW 2024 - Dedans/Dehors quand voir ne suffit pas
BOW 2024 - Dedans/Dehors quand voir ne suffit pas
BOW 2024 - 3-3 - Adaptation des bâtiments pour ruminants au changement clima...
BOW 2024 - 3-3 - Adaptation des bâtiments pour ruminants au changement clima...
Compersseur d'air a vis atlas copco avec huile
Compersseur d'air a vis atlas copco avec huile
BOW 2024 - 3-2 - Stress thermique impact vaches laitières
BOW 2024 - 3-2 - Stress thermique impact vaches laitières
BOW 2024 - 3-8 - Adaptation des bâtiments d'élevages de volailles au changeme...
BOW 2024 - 3-8 - Adaptation des bâtiments d'élevages de volailles au changeme...
Accompagnement de l'agrivoltaisme - Focus sur l'étude système en Merthe et Mo...
Accompagnement de l'agrivoltaisme - Focus sur l'étude système en Merthe et Mo...
Bow 2024 - Plein air à l'intérieur des bâtiments d'élevage de ruminants
Bow 2024 - Plein air à l'intérieur des bâtiments d'élevage de ruminants
CHAPITRE 2 VARIABLE ALEATOIRE probabilité.ppt
CHAPITRE 2 VARIABLE ALEATOIRE probabilité.ppt
BOW 2024 -3-9 - Matelas de logettes à eau refroidie VL
BOW 2024 -3-9 - Matelas de logettes à eau refroidie VL
BOW 2024 - 3 1 - Les infrastructures équestres et le changement climatique
BOW 2024 - 3 1 - Les infrastructures équestres et le changement climatique
Fichier XML et PHP5
1.
Jean-Marie Renouard LightPath
2014©
2.
Le logo PHP
est du domaine public http://commons.wikimedia.org/wiki/File:PHP-logo.svg Ce document est licencié sous licence ◦Attribution-NonCommercial-ShareAlike ◦CC BY-NC-SA Plus de détails: http://creativecommons.org/licenses/by-nc-sa/3.0/fr/ LightPath 2014© - http://www.jmrenouard.fr 2
3.
DOM: chargement et
écriture DOM: validation XML /DTD DOM: validation XML schéma DOM: conversion en tableau DOM: recherche d’élément DOM: recherche XPATH SimpleXML: chargement et écriture SimpleXML : recherche d’élément LightPath 2014© - http://www.jmrenouard.fr 3
4.
LightPath 2014© -
http://www.jmrenouard.fr 4
5.
DOM: Lecture et
création d’un arbre syntaxique. Pas de lecture de flux Tout est lu puis analysé Facilite la manipulation Lent quand le fichier XML est important Consommation mémoire importante LightPath 2014© - http://www.jmrenouard.fr 5
6.
Fichier XML exemple:
◦http://www.w3schools.com/XML/simple.xml Classe PHP: DOMDocument ◦http://php.net/manual/fr/class.domdocument.php Méthode load: ◦URL: http://.../.xml ◦Fichier Méthode loadXML et loadHTML: ◦Chaîne de caractère LightPath 2014© - http://www.jmrenouard.fr 6
7.
<?php $dom =
new DOMDocument(); $dom- >load('http://www.w3schools.com/XML/simple.xml'); $dom->load(‘/c/simple.xml'); $dom->getElementsByTagName(‘food'); $i++; foreach ($params as $param) { echo « * « .$param->nodeName. » = « .$param- >nodeValue; } ?> LightPath 2014© - http://www.jmrenouard.fr 7
8.
<?php $dom =
new DOMDocument(); $dom- >load('http://www.w3schools.com/XML/simple.xml'); //$dom->load(‘/c/simple.xml'); $params=$dom->getElementsByTagName(‘food'); foreach ($params as $param) { echo « * « .$param->nodeName. » = « .$param- >nodeValue; } ?> LightPath 2014© - http://www.jmrenouard.fr 8
9.
Méthode: save() ◦Fichier
à sauvegarder Méthodes: saveHTML() et saveXML() ◦Sauvegarde dans une chaîne de caractère LightPath 2014© - http://www.jmrenouard.fr 9
10.
Validation du format
XML Si DTD => Validation par DTD Méthode de DOMDocument ◦Validate() <?php $dom = new DOMDocument; $dom->Load('book.xml'); if ($dom->validate()) { echo "Ce document est valide !n"; } ?> LightPath 2014© - http://www.jmrenouard.fr 10
11.
Définition en XML
d'un contrat que doit respecter un document XML. Validation formelle de la structure Validation du format des données LightPath 2014© - http://www.jmrenouard.fr 11
12.
Méthode de DOMDocument:
schemaValidate() <?php $dom = new DOMDocument; $dom->Load('book.xml'); if ($dom- >schemaValidate(‘schema.xml’)) { echo "Ce document est valide XMLSchema !n"; } ?> LightPath 2014© - http://www.jmrenouard.fr 12
13.
ll est possible
de traduire une document XML en tableau PHP Facilite la lecture et la manipulation. Exemple: WC1/MyDOMDocument.php LightPath 2014© - http://www.jmrenouard.fr 13
14.
DOMDocument :2 méthodes
getElementById(): Trouve un élément par identifiant. ◦Renvoie un DOMElement getElementsByTagName(): Trouve une liste de noeud ◦Renvoie une DOMNodeList LightPath 2014© - http://www.jmrenouard.fr 14
15.
Il s’agit d’un
tag: DOMElement $domElement=new DOMElement(« food »); $domElement->tagName; $domElement->getAttribute(); $domElement->getElementsByTagName(‘..’); LightPath 2014© - http://www.jmrenouard.fr 15
16.
$nodeList->length; DOMNode $node=$nodeList->item($i);
$node->nodeName: nom du noeud $node->nodeValue: valeur du noeud $node->textContent: contenu du noeud LightPath 2014© - http://www.jmrenouard.fr 16
17.
Moyen d'effectuer de
la recherche dans des documents XML. Syntaxe riche Efficace et standardisé LightPath 2014© - http://www.jmrenouard.fr 17
18.
Classe DOMXPath: 2
méthodes: ◦evaluate() : évaluation et comptage ◦query(): recherche des éléments LightPath 2014© - http://www.jmrenouard.fr 18
19.
<?php $doc =
new DOMDocument; $doc->load('book.xml'); $xpath = new DOMXPath($doc); $tbody = $doc- >getElementsByTagName('tbody')- >item(0); // notre requête est relative au noeud tbody $query = 'count(row/entry[. = "en"])'; $entries = $xpath- >evaluate($query, $tbody); echo "Il y a $entries livres anglaisn"; ?> LightPath 2014© - http://www.jmrenouard.fr 19
20.
DOMXPtah->query renvoie un
objet DOMNodeList <?php $doc = new DOMDocument; $doc->load('book.xml'); $xpath = new DOMXPath($doc); $query = '//book/title'; $entries = $xpath->query($query); foreach ($entries as $entry) { echo "Livre trouvé {$entry->nodeValue} n"; } ?> LightPath 2014© - http://www.jmrenouard.fr 20
21.
LightPath 2014© -
http://www.jmrenouard.fr 21
22.
Plus simple que
DOM Utilise la librairie libXML Plus rapide, plus simple LibXML: librairie XML de référence LightPath 2014© - http://www.jmrenouard.fr 22
23.
simplexml_import_dom : ◦Conversion
d’un DOMDocument en SimpleXMLElement simple_load_file: ◦Conversion un fichier XML en objet simplexml_load_string ◦Conversion d’une chaîne XML en objet LightPath 2014© - http://www.jmrenouard.fr 23
24.
L’objet SimpleXMLElement ◦Méthode
asXML($nomDeFichier) Extraction d’une chaîne de caractère XML file_put_contents pour écrire dans un fichier. LightPath 2014© - http://www.jmrenouard.fr 24
25.
Expression XPath possible.
Façon la plus rapide <?php $xml= simple_load_file(‘book.xml’); $result = $xml->xpath('/book/title'); while(list( , $node) = each($result)) { echo $node->asXML(); } ?> LightPath 2014© - http://www.jmrenouard.fr 25
26.
nom : recherche
de la balise nom /fils : recherche fils directs //noeud : recherche fils directs et indirects * : wildcard (//*) | : expression d’un Ou . : élément courant .. : élément parent @attr : recherche d’un élément avec attribut attr LightPath 2014© - http://www.jmrenouard.fr 26
27.
@id=‘5’ : recherche
d’un élément avec attribut id valant 5. Book[@id=‘5’] : recherche d’un élément book avec un attribut id valant 5 LightPath 2014© - http://www.jmrenouard.fr 27
28.
LightPath: ◦Société de
conseil et d’ingénierie ◦Formations, Conseil, Audit et mise en oeuvre ◦jmrenouard@lightpath.fr Jean-Marie RENOUARD ◦jmrenouard@gmail.com ◦Twitter: @jmrenouard ◦http://www.jmrenouard.fr LightPath 2014© - http://www.jmrenouard.fr 28
Télécharger maintenant