SlideShare une entreprise Scribd logo
1  sur  6
Télécharger pour lire hors ligne
Résumé développement PHP avancé
1. Connexion BDD

       <?php
       // on se connecte à MySQL
       $db = mysql_connect('localhost', 'login', 'password');

       // on seléctionne la base
       mysql_select_db('nom_de_la_base',$db);

       // on crée la requete SQL
       $sql = "SELECT nom,prenom,statut FROM famille_tbl";

       // on envoie la requête
       $req = mysql_query($sql) or die('Erreur SQL !<br>'.
       $sql.'<br>'.mysql_error());

       // on fait une boucle qui va faire un tour pour chaque enregistrement
       while($data = mysql_fetch_array($req))
           {
           // on affiche les informations de l'enregistrement en cours
           echo '<b>'.$data['nom'].' '.$data['prenom'].'</b> ('.
       $data['statut'].')';
           echo ' <i>date de naissance : '.$data['datefr'].'</i><br>';
           }

       // on ferme la connexion à mysql
       mysql_close();
       ?>




Abdelmonem NAAMANE                                                     Page 1/6
2. Envoi de mail

       <?php
       $destinataires = 'isamm@naamane.com , master@naamane.com ' ;
       $sujet = 'Projet fin d'année' ;
       $entetes = "From: isamm@naamane.com n" ;
       $entetes .= "Reply-to: isamm@naamane.com n" ;
       $entetes .= "Cc: isamm2@naamane.com n" ;
       $entetes .= "Bcc: isamm3@naamane.com n";

       /* Ici notre message sera envoyé en copie à isamm2@naamane.com et en copie
       cachée à isamm3@naamane.com */

       //Le quatrième paramètre est optionnel
       mail($destinataires, $sujet, "Vous devez envoyer votre rapport complet sur le
       projet de fin d'année.n Cordiallementn Abdelmonem NAAMANE", $entetes) ;

       ?>




Abdelmonem NAAMANE                                                                 Page 2/6
3. POO
<?php
// définition de la classe
class voiture {
    public $taxe ; //attribut
    public $prixHT ; //attribut

     function prixTTC( $force_de_freinage ) { //méthode
       return $this->prixHT * $this->taxe ; // accés à un attribut dans la même classe
     }
}

// Instanciation d’un objet
$mavoiture = new voiture() ;

 //accés à l'attribut
$mavoiture->prixHT = 2000 ;
$mavoiture->taxe = 1.2 ;

//affichag de la valeur d'un attribut
echo 'Le prix hors taxe est : '. $mavoiture->prixHT;

//appel de méthode
echo 'Le prix TTC est : ' . $mavoiture-> prixTTC();

}

 // héritage
class triCycle extends voiture{

}
?>




Abdelmonem NAAMANE                                                                       Page 3/6
4. SimpleXML et PHP 5
    4.1. Chargement du fichier XML
Pour lire le fichier XML, nous allons utiliser la nouvelle fonction simplexml_load_file.
La page PHP crée étant située dans le même dossier que le fichier XML, nous aurons donc simplement
comme code PHP : $xml = simplexml_load_file('etudiant.xml');

En ajoutant une sécurité par rapport à l'existence du fichier, le code devient :

             if (file_exists('etudiant.xml')) { // tester si le fichier existe
                $xml = simplexml_load_file('etudiant.xml') ; // chargement du fichier XML

             } else {
             exit('Erreur !.');
             }


    4.2. Récupération des informations générales du fichier
Dans tout fichier XML, vous pouvez récupérer des informations générales sur le les étudiants : Nom, email,
etc.

             <etudiants>

                <etudiant>
                  <nom>NAAMANE</nom>
                  <prenom>Abdelmonem</prenom>
                  <email >isamm@naamane.com</email>
                  <site url="http://isamm.naamane.com">ISAMM</site>
                </etudiant>

             …

             </etudiants>


On constate donc que le nom est contenu dans la balise <nom> qui elle-même est contenue dans <etudiants>.
Donc pour récupérer le contenu de <nom>, la syntaxe est : $xml->etudiants->nom;

Vous pouvez ainsi repérer la structure en noeuds transposée en PHP. Ce bref exemple vous montre la
simplicité de cette fonction.
Donc pour récupérer nos trois valeurs, on peut utiliser ce script :



Abdelmonem NAAMANE                                                                          Page 4/6
$nom = $xml->etudiants->etudiant->nom;
             $email = $xml->etudiants->etudiant->email;
             $prenom = $xml->etudiants->etudiant->prenom;


    4.3. Récupération des 5 dernières étudiants
Vous l'avez compris, cette fonction utilise intelligemment la structure de XML.
Chaque etudiant est représentée par la balise <etudiant> , qui contient elle-même les balises nom, prenom,
email, matiere. Celles qui nous intéressent peuvent se limiter au nom, prenom et email.

Voici un exemple d'une actualité dans le XML :

             <etudiants>

             <etudiant>
             <nom>NAAMANE</nom>
             <prenom>Abdelmonem</prenom>
             <email >isamm@naamane.com</email>
             …

             <etudiant>
             <nom>BABA</nom>
             <prenom>Ali</prenom>
             <email >ali@baba.com</email>
             …

             </etudiants>


On pourrait facilement récupérer ces valeurs en utilisant par exemple :

             $xml->etudiants->etudiant->nom ; ==> Faux si la balise etudiant se répéte


Ainsi, si une balise XML est répétée, vous pouvez y accéder en utilisant les tableaux pour cette valeur.
Comme la balise etudiant est répétée, et que la première valeur d'un tableau en PHP commence à 0, l'item de
la première actualité est etudiant[0] , puis etudiant[1] etc.

Les valeurs qui nous intéressent pour le premier étudiant sont donc :

             $xml->etudiants->etudiant[0]->nom;




Abdelmonem NAAMANE                                                                         Page 5/6
$xml->etudiants->etudiant[0]->prenom;
              $xml->etudiants->etudiant[0]->email;


Puis pour le seconde :

              $xml->etudiants->etudiant[1]->nom;
              $xml->etudiants->etudiant[1]->prenom;
              $xml->etudiants->etudiant[1]->email;


Bien sûr, une boucle vous permettra de gérer ces valeurs plus proprement :

              for ($i=0; $i<5; $i++) {
                 echo "<p>";

                  echo $xml->etudiants->etudiant[$i]->nom ."<br />";
                  echo $xml->etudiants->etudiant[$i]-> prenom ."<br />";
                  echo $xml->etudiants->etudiant[$i]-> email ."<br />";

                  echo "</p>";
              }

Pour afficher toutes les étudiants, nous aurions pu utiliser la fonction foreach :

              foreach ($xml->etudiants->etudiant as $valeur) {
                echo $valeur->nom, '<br />';
              }


    4.4. Récupération de la valeur des attributs
En XML, vous pouvez également avoir besoin des attributs de certaines balises. C'est le cas par exemple de la
balise :

              <site url="http://isamm.naamane.com">ISAMM</site>

Pour récupérer la valeur de l'attribut url pour la première actualité, il faut utiliser :

              $xml->etudiants->etudiant[0]->site['url'];




Abdelmonem NAAMANE                                                                          Page 6/6

Contenu connexe

Tendances

Présentation de DBAL en PHP
Présentation de DBAL en PHPPrésentation de DBAL en PHP
Présentation de DBAL en PHPMickael Perraud
 
Présentation de DBAL en PHP (Nantes)
Présentation de DBAL en PHP (Nantes)Présentation de DBAL en PHP (Nantes)
Présentation de DBAL en PHP (Nantes)Mickael Perraud
 
Cours php & Mysql - 4éme partie
Cours php & Mysql - 4éme partieCours php & Mysql - 4éme partie
Cours php & Mysql - 4éme partiekadzaki
 
Pourquoi Ruby et Ruby On Rais sont geniaux ?
Pourquoi Ruby et Ruby On Rais sont geniaux ?Pourquoi Ruby et Ruby On Rais sont geniaux ?
Pourquoi Ruby et Ruby On Rais sont geniaux ?Maxime Menant
 
Php mysql cours
Php mysql coursPhp mysql cours
Php mysql courszan
 
Uniform Variable Syntax
Uniform Variable SyntaxUniform Variable Syntax
Uniform Variable SyntaxDarkmira
 
Créer une barre de progression grâce à PHP 5.4
Créer une barre de progression grâce à PHP 5.4Créer une barre de progression grâce à PHP 5.4
Créer une barre de progression grâce à PHP 5.4🏁 Pierre-Henry Soria 💡
 
Php 2 - Approfondissement MySQL, PDO et MVC
Php 2 - Approfondissement MySQL, PDO et MVCPhp 2 - Approfondissement MySQL, PDO et MVC
Php 2 - Approfondissement MySQL, PDO et MVCPierre Faure
 

Tendances (19)

Présentation de DBAL en PHP
Présentation de DBAL en PHPPrésentation de DBAL en PHP
Présentation de DBAL en PHP
 
Présentation de DBAL en PHP (Nantes)
Présentation de DBAL en PHP (Nantes)Présentation de DBAL en PHP (Nantes)
Présentation de DBAL en PHP (Nantes)
 
Introduction au Jquery
Introduction au JqueryIntroduction au Jquery
Introduction au Jquery
 
Mpdf 8
Mpdf 8Mpdf 8
Mpdf 8
 
Cours php & Mysql - 4éme partie
Cours php & Mysql - 4éme partieCours php & Mysql - 4éme partie
Cours php & Mysql - 4éme partie
 
Pourquoi Ruby et Ruby On Rais sont geniaux ?
Pourquoi Ruby et Ruby On Rais sont geniaux ?Pourquoi Ruby et Ruby On Rais sont geniaux ?
Pourquoi Ruby et Ruby On Rais sont geniaux ?
 
Mpdf 11
Mpdf 11Mpdf 11
Mpdf 11
 
Php mysql cours
Php mysql coursPhp mysql cours
Php mysql cours
 
Uniform Variable Syntax
Uniform Variable SyntaxUniform Variable Syntax
Uniform Variable Syntax
 
Mpdf 3
Mpdf 3Mpdf 3
Mpdf 3
 
Gestion de formulaires en PHP
Gestion de formulaires en PHPGestion de formulaires en PHP
Gestion de formulaires en PHP
 
Mpdf 5
Mpdf 5Mpdf 5
Mpdf 5
 
Mpdf 10
Mpdf 10Mpdf 10
Mpdf 10
 
Mpdf 12
Mpdf 12Mpdf 12
Mpdf 12
 
Compteur de visites
Compteur de visitesCompteur de visites
Compteur de visites
 
Créer une barre de progression grâce à PHP 5.4
Créer une barre de progression grâce à PHP 5.4Créer une barre de progression grâce à PHP 5.4
Créer une barre de progression grâce à PHP 5.4
 
Mpdf 9
Mpdf 9Mpdf 9
Mpdf 9
 
Mpdf 7
Mpdf 7Mpdf 7
Mpdf 7
 
Php 2 - Approfondissement MySQL, PDO et MVC
Php 2 - Approfondissement MySQL, PDO et MVCPhp 2 - Approfondissement MySQL, PDO et MVC
Php 2 - Approfondissement MySQL, PDO et MVC
 

En vedette

Projet fin annee 2011 master min ISAMM
Projet fin annee 2011 master min ISAMMProjet fin annee 2011 master min ISAMM
Projet fin annee 2011 master min ISAMMAbdelmonem NAAMANE
 
PHP (Partie II) Par Mahdi Ben Alaya
PHP (Partie II) Par Mahdi Ben AlayaPHP (Partie II) Par Mahdi Ben Alaya
PHP (Partie II) Par Mahdi Ben AlayaMahdi Ben Alaya
 
éNoncés+corrections bac2009
éNoncés+corrections bac2009éNoncés+corrections bac2009
éNoncés+corrections bac2009Morom Bil Morom
 
Cours Base de Données
Cours Base de DonnéesCours Base de Données
Cours Base de Donnéesyassine kchiri
 
exercices base de données - sql
exercices  base de données - sql exercices  base de données - sql
exercices base de données - sql Yassine Badri
 
Competitic Réseaux sociaux : quelles opportunités pour mon entreprise ?
Competitic Réseaux sociaux : quelles opportunités pour mon entreprise ?Competitic Réseaux sociaux : quelles opportunités pour mon entreprise ?
Competitic Réseaux sociaux : quelles opportunités pour mon entreprise ?COMPETITIC
 
Actividades para estudiantes con necesidades
Actividades para estudiantes con necesidadesActividades para estudiantes con necesidades
Actividades para estudiantes con necesidadesJOSEGUERREROSARRIA
 
Formation Comment Pourquoi Utiliser Lecteur Flux rss ?
Formation Comment Pourquoi Utiliser Lecteur Flux rss ?Formation Comment Pourquoi Utiliser Lecteur Flux rss ?
Formation Comment Pourquoi Utiliser Lecteur Flux rss ?AXIZ eBusiness
 
2012 01 19 utilisez les differentes opportunites pour vendre en ligne
2012 01 19 utilisez les differentes opportunites pour vendre en ligne2012 01 19 utilisez les differentes opportunites pour vendre en ligne
2012 01 19 utilisez les differentes opportunites pour vendre en ligneCOMPETITIC
 

En vedette (20)

Projet fin annee 2011 master min ISAMM
Projet fin annee 2011 master min ISAMMProjet fin annee 2011 master min ISAMM
Projet fin annee 2011 master min ISAMM
 
Projet2-4si-tic
Projet2-4si-ticProjet2-4si-tic
Projet2-4si-tic
 
PHP (Partie II) Par Mahdi Ben Alaya
PHP (Partie II) Par Mahdi Ben AlayaPHP (Partie II) Par Mahdi Ben Alaya
PHP (Partie II) Par Mahdi Ben Alaya
 
Projet3-4si-tic
Projet3-4si-ticProjet3-4si-tic
Projet3-4si-tic
 
Projet4-4si-tic
Projet4-4si-ticProjet4-4si-tic
Projet4-4si-tic
 
Dc2 4 si-tic-2009-2010
Dc2 4 si-tic-2009-2010Dc2 4 si-tic-2009-2010
Dc2 4 si-tic-2009-2010
 
Tp4 - PHP
Tp4 - PHPTp4 - PHP
Tp4 - PHP
 
éNoncés+corrections bac2009
éNoncés+corrections bac2009éNoncés+corrections bac2009
éNoncés+corrections bac2009
 
Exposé pfe
Exposé pfeExposé pfe
Exposé pfe
 
Cours Base de Données
Cours Base de DonnéesCours Base de Données
Cours Base de Données
 
exercices base de données - sql
exercices  base de données - sql exercices  base de données - sql
exercices base de données - sql
 
Correction
CorrectionCorrection
Correction
 
Presentation forum php 2010
Presentation forum php 2010Presentation forum php 2010
Presentation forum php 2010
 
Réussir son site web grâce au cahier des charges
Réussir son site web grâce au cahier des chargesRéussir son site web grâce au cahier des charges
Réussir son site web grâce au cahier des charges
 
Competitic Réseaux sociaux : quelles opportunités pour mon entreprise ?
Competitic Réseaux sociaux : quelles opportunités pour mon entreprise ?Competitic Réseaux sociaux : quelles opportunités pour mon entreprise ?
Competitic Réseaux sociaux : quelles opportunités pour mon entreprise ?
 
Actividades para estudiantes con necesidades
Actividades para estudiantes con necesidadesActividades para estudiantes con necesidades
Actividades para estudiantes con necesidades
 
Fontaneros madrid
Fontaneros madridFontaneros madrid
Fontaneros madrid
 
Formation Comment Pourquoi Utiliser Lecteur Flux rss ?
Formation Comment Pourquoi Utiliser Lecteur Flux rss ?Formation Comment Pourquoi Utiliser Lecteur Flux rss ?
Formation Comment Pourquoi Utiliser Lecteur Flux rss ?
 
2012 01 19 utilisez les differentes opportunites pour vendre en ligne
2012 01 19 utilisez les differentes opportunites pour vendre en ligne2012 01 19 utilisez les differentes opportunites pour vendre en ligne
2012 01 19 utilisez les differentes opportunites pour vendre en ligne
 
1999 protegez vous
1999 protegez vous1999 protegez vous
1999 protegez vous
 

Similaire à Cours PHP avancé

Formulaires Symfony2 - Cas pratiques et explications
Formulaires Symfony2 - Cas pratiques et explicationsFormulaires Symfony2 - Cas pratiques et explications
Formulaires Symfony2 - Cas pratiques et explicationsAlexandre Salomé
 
Comment Créer Un Site De Membres vol 03
Comment Créer Un Site De Membres vol 03Comment Créer Un Site De Membres vol 03
Comment Créer Un Site De Membres vol 03Patrick Van Hoof
 
Découpler votre code pour assurer la réutilisabilité et la maintenabilite ...
Découpler votre code pour assurer la réutilisabilité et la maintenabilite ...Découpler votre code pour assurer la réutilisabilité et la maintenabilite ...
Découpler votre code pour assurer la réutilisabilité et la maintenabilite ...Fabien Potencier
 
Coat::Persistent at FPW2009
Coat::Persistent at FPW2009Coat::Persistent at FPW2009
Coat::Persistent at FPW2009Alexis Sukrieh
 
Doctrine en dehors des sentiers battus
Doctrine en dehors des sentiers battusDoctrine en dehors des sentiers battus
Doctrine en dehors des sentiers battusRomaric Drigon
 
Application web php5 html5 css3 bootstrap
Application web php5 html5 css3 bootstrapApplication web php5 html5 css3 bootstrap
Application web php5 html5 css3 bootstrapBassem ABCHA
 
Annexes du Document sur l'Auto provisioning, contacts, presence et streaming ...
Annexes du Document sur l'Auto provisioning, contacts, presence et streaming ...Annexes du Document sur l'Auto provisioning, contacts, presence et streaming ...
Annexes du Document sur l'Auto provisioning, contacts, presence et streaming ...Emeric Kamleu Noumi
 
Les principes de base de PHP
 Les principes de base de PHP  Les principes de base de PHP
Les principes de base de PHP EL JAOUARI Ahmed
 
Modèle de domaine riche dans une application métier complexe un exemple pratique
Modèle de domaine riche dans une application métier complexe un exemple pratiqueModèle de domaine riche dans une application métier complexe un exemple pratique
Modèle de domaine riche dans une application métier complexe un exemple pratiqueVladyslav Riabchenko
 
Quelle place pour le framework Rails dans le développement d'application web
Quelle place pour le framework Rails dans le développement d'application webQuelle place pour le framework Rails dans le développement d'application web
Quelle place pour le framework Rails dans le développement d'application web5pidou
 
PHP 5 pour les développeurs Java
PHP 5 pour les développeurs JavaPHP 5 pour les développeurs Java
PHP 5 pour les développeurs JavaMehdi EL KRARI
 
Javascript ne se limite pas à jquery
Javascript ne se limite pas à jqueryJavascript ne se limite pas à jquery
Javascript ne se limite pas à jqueryneuros
 

Similaire à Cours PHP avancé (20)

Formulaires Symfony2 - Cas pratiques et explications
Formulaires Symfony2 - Cas pratiques et explicationsFormulaires Symfony2 - Cas pratiques et explications
Formulaires Symfony2 - Cas pratiques et explications
 
Comment Créer Un Site De Membres vol 03
Comment Créer Un Site De Membres vol 03Comment Créer Un Site De Membres vol 03
Comment Créer Un Site De Membres vol 03
 
Cours php bac info
Cours php bac infoCours php bac info
Cours php bac info
 
Playing With PHP 5.3
Playing With PHP 5.3Playing With PHP 5.3
Playing With PHP 5.3
 
Découpler votre code pour assurer la réutilisabilité et la maintenabilite ...
Découpler votre code pour assurer la réutilisabilité et la maintenabilite ...Découpler votre code pour assurer la réutilisabilité et la maintenabilite ...
Découpler votre code pour assurer la réutilisabilité et la maintenabilite ...
 
Cours php
Cours php Cours php
Cours php
 
Coat::Persistent at FPW2009
Coat::Persistent at FPW2009Coat::Persistent at FPW2009
Coat::Persistent at FPW2009
 
Doctrine en dehors des sentiers battus
Doctrine en dehors des sentiers battusDoctrine en dehors des sentiers battus
Doctrine en dehors des sentiers battus
 
Application web php5 html5 css3 bootstrap
Application web php5 html5 css3 bootstrapApplication web php5 html5 css3 bootstrap
Application web php5 html5 css3 bootstrap
 
Ruby STAR
Ruby STARRuby STAR
Ruby STAR
 
Annexes du Document sur l'Auto provisioning, contacts, presence et streaming ...
Annexes du Document sur l'Auto provisioning, contacts, presence et streaming ...Annexes du Document sur l'Auto provisioning, contacts, presence et streaming ...
Annexes du Document sur l'Auto provisioning, contacts, presence et streaming ...
 
Les principes de base de PHP
 Les principes de base de PHP  Les principes de base de PHP
Les principes de base de PHP
 
Php cours
Php coursPhp cours
Php cours
 
Php1
Php1Php1
Php1
 
Php 5.3
Php 5.3Php 5.3
Php 5.3
 
Modèle de domaine riche dans une application métier complexe un exemple pratique
Modèle de domaine riche dans une application métier complexe un exemple pratiqueModèle de domaine riche dans une application métier complexe un exemple pratique
Modèle de domaine riche dans une application métier complexe un exemple pratique
 
Quelle place pour le framework Rails dans le développement d'application web
Quelle place pour le framework Rails dans le développement d'application webQuelle place pour le framework Rails dans le développement d'application web
Quelle place pour le framework Rails dans le développement d'application web
 
PHP 5 pour les développeurs Java
PHP 5 pour les développeurs JavaPHP 5 pour les développeurs Java
PHP 5 pour les développeurs Java
 
Php Data Object
Php Data ObjectPhp Data Object
Php Data Object
 
Javascript ne se limite pas à jquery
Javascript ne se limite pas à jqueryJavascript ne se limite pas à jquery
Javascript ne se limite pas à jquery
 

Cours PHP avancé

  • 1. Résumé développement PHP avancé 1. Connexion BDD <?php // on se connecte à MySQL $db = mysql_connect('localhost', 'login', 'password'); // on seléctionne la base mysql_select_db('nom_de_la_base',$db); // on crée la requete SQL $sql = "SELECT nom,prenom,statut FROM famille_tbl"; // on envoie la requête $req = mysql_query($sql) or die('Erreur SQL !<br>'. $sql.'<br>'.mysql_error()); // on fait une boucle qui va faire un tour pour chaque enregistrement while($data = mysql_fetch_array($req)) { // on affiche les informations de l'enregistrement en cours echo '<b>'.$data['nom'].' '.$data['prenom'].'</b> ('. $data['statut'].')'; echo ' <i>date de naissance : '.$data['datefr'].'</i><br>'; } // on ferme la connexion à mysql mysql_close(); ?> Abdelmonem NAAMANE Page 1/6
  • 2. 2. Envoi de mail <?php $destinataires = 'isamm@naamane.com , master@naamane.com ' ; $sujet = 'Projet fin d'année' ; $entetes = "From: isamm@naamane.com n" ; $entetes .= "Reply-to: isamm@naamane.com n" ; $entetes .= "Cc: isamm2@naamane.com n" ; $entetes .= "Bcc: isamm3@naamane.com n"; /* Ici notre message sera envoyé en copie à isamm2@naamane.com et en copie cachée à isamm3@naamane.com */ //Le quatrième paramètre est optionnel mail($destinataires, $sujet, "Vous devez envoyer votre rapport complet sur le projet de fin d'année.n Cordiallementn Abdelmonem NAAMANE", $entetes) ; ?> Abdelmonem NAAMANE Page 2/6
  • 3. 3. POO <?php // définition de la classe class voiture { public $taxe ; //attribut public $prixHT ; //attribut function prixTTC( $force_de_freinage ) { //méthode return $this->prixHT * $this->taxe ; // accés à un attribut dans la même classe } } // Instanciation d’un objet $mavoiture = new voiture() ; //accés à l'attribut $mavoiture->prixHT = 2000 ; $mavoiture->taxe = 1.2 ; //affichag de la valeur d'un attribut echo 'Le prix hors taxe est : '. $mavoiture->prixHT; //appel de méthode echo 'Le prix TTC est : ' . $mavoiture-> prixTTC(); } // héritage class triCycle extends voiture{ } ?> Abdelmonem NAAMANE Page 3/6
  • 4. 4. SimpleXML et PHP 5 4.1. Chargement du fichier XML Pour lire le fichier XML, nous allons utiliser la nouvelle fonction simplexml_load_file. La page PHP crée étant située dans le même dossier que le fichier XML, nous aurons donc simplement comme code PHP : $xml = simplexml_load_file('etudiant.xml'); En ajoutant une sécurité par rapport à l'existence du fichier, le code devient : if (file_exists('etudiant.xml')) { // tester si le fichier existe $xml = simplexml_load_file('etudiant.xml') ; // chargement du fichier XML } else { exit('Erreur !.'); } 4.2. Récupération des informations générales du fichier Dans tout fichier XML, vous pouvez récupérer des informations générales sur le les étudiants : Nom, email, etc. <etudiants> <etudiant> <nom>NAAMANE</nom> <prenom>Abdelmonem</prenom> <email >isamm@naamane.com</email> <site url="http://isamm.naamane.com">ISAMM</site> </etudiant> … </etudiants> On constate donc que le nom est contenu dans la balise <nom> qui elle-même est contenue dans <etudiants>. Donc pour récupérer le contenu de <nom>, la syntaxe est : $xml->etudiants->nom; Vous pouvez ainsi repérer la structure en noeuds transposée en PHP. Ce bref exemple vous montre la simplicité de cette fonction. Donc pour récupérer nos trois valeurs, on peut utiliser ce script : Abdelmonem NAAMANE Page 4/6
  • 5. $nom = $xml->etudiants->etudiant->nom; $email = $xml->etudiants->etudiant->email; $prenom = $xml->etudiants->etudiant->prenom; 4.3. Récupération des 5 dernières étudiants Vous l'avez compris, cette fonction utilise intelligemment la structure de XML. Chaque etudiant est représentée par la balise <etudiant> , qui contient elle-même les balises nom, prenom, email, matiere. Celles qui nous intéressent peuvent se limiter au nom, prenom et email. Voici un exemple d'une actualité dans le XML : <etudiants> <etudiant> <nom>NAAMANE</nom> <prenom>Abdelmonem</prenom> <email >isamm@naamane.com</email> … <etudiant> <nom>BABA</nom> <prenom>Ali</prenom> <email >ali@baba.com</email> … </etudiants> On pourrait facilement récupérer ces valeurs en utilisant par exemple : $xml->etudiants->etudiant->nom ; ==> Faux si la balise etudiant se répéte Ainsi, si une balise XML est répétée, vous pouvez y accéder en utilisant les tableaux pour cette valeur. Comme la balise etudiant est répétée, et que la première valeur d'un tableau en PHP commence à 0, l'item de la première actualité est etudiant[0] , puis etudiant[1] etc. Les valeurs qui nous intéressent pour le premier étudiant sont donc : $xml->etudiants->etudiant[0]->nom; Abdelmonem NAAMANE Page 5/6
  • 6. $xml->etudiants->etudiant[0]->prenom; $xml->etudiants->etudiant[0]->email; Puis pour le seconde : $xml->etudiants->etudiant[1]->nom; $xml->etudiants->etudiant[1]->prenom; $xml->etudiants->etudiant[1]->email; Bien sûr, une boucle vous permettra de gérer ces valeurs plus proprement : for ($i=0; $i<5; $i++) { echo "<p>"; echo $xml->etudiants->etudiant[$i]->nom ."<br />"; echo $xml->etudiants->etudiant[$i]-> prenom ."<br />"; echo $xml->etudiants->etudiant[$i]-> email ."<br />"; echo "</p>"; } Pour afficher toutes les étudiants, nous aurions pu utiliser la fonction foreach : foreach ($xml->etudiants->etudiant as $valeur) { echo $valeur->nom, '<br />'; } 4.4. Récupération de la valeur des attributs En XML, vous pouvez également avoir besoin des attributs de certaines balises. C'est le cas par exemple de la balise : <site url="http://isamm.naamane.com">ISAMM</site> Pour récupérer la valeur de l'attribut url pour la première actualité, il faut utiliser : $xml->etudiants->etudiant[0]->site['url']; Abdelmonem NAAMANE Page 6/6