6

Click here to load reader

Cours PHP avancé

Embed Size (px)

DESCRIPTION

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

Citation preview

Page 1: Cours PHP avancé

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

Page 2: Cours PHP avancé

2. Envoi de mail

<?php$destinataires = '[email protected] , [email protected] ' ;$sujet = 'Projet fin d'année' ;$entetes = "From: [email protected] \n" ;$entetes .= "Reply-to: [email protected] \n" ;$entetes .= "Cc: [email protected] \n" ;$entetes .= "Bcc: [email protected] \n";

/* Ici notre message sera envoyé en copie à [email protected] et en copie cachée à [email protected] */

//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

Page 3: Cours PHP avancé

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

Page 4: Cours PHP avancé

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 >[email protected]</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

Page 5: Cours PHP avancé

$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 >[email protected]</email>…

<etudiant><nom>BABA</nom><prenom>Ali</prenom><email >[email protected]</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

Page 6: Cours PHP avancé

$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