Cours PHP avancé

Preview:

DESCRIPTION

Résumé du cours PHP avancé déstiné au étidiant de Master. Ce cours se base sur les exemples.

Citation preview

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 optionnelmail($destinataires, $sujet, "Vous devez envoyer votre rapport complet sur le projet de fin d'année.\n Cordiallement\n Abdelmonem NAAMANE", $entetes) ;

?>

Abdelmonem NAAMANE Page 2/6

3. POO

<?php// définition de la classeclass voiture {

public $taxe ; //attributpublic $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 attributecho 'Le prix hors taxe est : '. $mavoiture->prixHT;

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

}

// héritageclass 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

Recommended