« SPARQL Protocol and RDF Query Language/Travail pratique/PHP les variables » : différence entre les versions

Contenu supprimé Contenu ajouté
Page créée avec « {{ébauche informatique}} {{Travail pratique | titre = Les variables | titre_leçon = La programmation PHP | idfaculté = informatique | leçon = [[SPARQL P... »
 
Ligne 27 :
 
 
====Les Documentationsvariables dans PHP====
Ce TP a été fabriqué avec les documents suivants :
*
 
'''$''' devant une chaîne de caractères dans PHP signifie que nous parlons d'une variable, on la nomme comme on veut mais elle doit respecter trois conditions :
* jamais d'accent
* ni d'espace dans un nom de variable
* elle ne commence pas par un chiffre
 
Une variable PHP est faiblement typée. Cela signifie qu'elle peut prendre les types suivant alternativement.
Les types des variables :
*'''string''' : chaîne de caractères
*'''integer''' : nombre entier, double
*'''bool''' : booléen qui signifie logique binaire, vrai ou faux
*'''float''' : nombre réel
*'''array''' : tableau
*'''object''' : objet
 
{{remarque |contenu=
En java ou C#, les variables sont fortement typées.
}}
 
Syntaxe des variables :
<source lang="php">
<?php
$nom='Mickaël';
$age=17;
$gars=true;
$taille=1.75;
?>
</source>
 
Nous pouvons voir que :
*Toutes les instructions (toutes) se terminent par un point virgule.
*Seule la variable string exige les guillemets (simples ou doubles)
*La variable booléenne prend la valeur '''true''' et sans guillemets, elle a pour contraire '''false'''.
*Le nombre réel prend un point à l'anglo-saxonne et non une virgule...
 
{{remarque |contenu=
Les nombres sont écrit en Anglais. Le point remplace la virgule en informatique. C'est au moment de l'affichage en fonction du pays qu'on affiche un nombre avec un point ou une virgule.
}}
 
====Affichage dans PHP====
 
Maintenant affichons les variables grâce à la commande echo, dans un environnement HTML :
<source lang="php">
<?php
echo '<p>Bonjour à tous.<br/>
Mon vrai nom n\'est pas Toto.<br/>
Mon vrai nom est '.$nom. '<br/>
J\'ai '.$age.' ans et je mesure '.$taille. 'm.<br/>
Et comme mon nom l\'indique, je suis ';
if ($gars == true){
echo 'un garçon.</p>';
}else{
echo 'une fille. </p>';
}
?>
</source>
 
Dans notre exemple :
*Il y a deux instructions 'affiche' : Une automatique, et une conditionnelle.
*On retourne à ligne au sein de l'affichage grâce à la balise <nowiki><br/></nowiki>.
*Les apostrophes dans le texte ont été neutralisées en plaçant \ devant chacune d'elle pour qu'elles ne soient pas considérées comme la fin de la chaîne de caractères.
*L'affichage du contenu de la variable se fait automatiquement, en mettant la variable nue dans le code.
*Vous remarquerez que le point sert à concaténer (ou coller du texte bout à bout).
*Il vous faut gérer les espaces à l'affichage au sein des guillemets. Ici la coloration syntaxique devient indispensable dans votre éditeur.
*c'est toujours au niveau du code HTML que se gèrent les retours à la ligne de l'affichage (éléments <br/>, p ou autres). Les retours à la ligne que vous faites spontanément dans votre code PHP après chaque instruction ne sont que des retours à la ligne à destination du programmeur pour une meilleure lisibilité de son code.
 
====Guillemets ou Apostrophes ?====
Prenez l'habitude de savoir à quel niveau vous êtes :
* au niveau du code PHP
* bien au niveau du code HTML qui aboutit à un affichage.
 
Vous trouverez bien pratique de savoir que les guillemets "" (contrairement aux guillemets simples ou apostrophes) permettent ceci en PHP:
<source lang="php">
<?php
$age=18;
//Ceci affichera directement
//J'ai 18 ans.
echo "J'ai $age ans.";
?>
</source>
 
Vous allez trouver étrange d'utiliser les guillemets simples pour PHP, puisque l'exemple ci-dessus règle d'un seul coup l'interprétation directe de la variable et le problème de l'apostrophe du texte "J'ai"...
 
 
Pourtant, vous devrez procéder de façon plus rigoureuse si vous êtes amené à continuer avec PHP, aussi je vous prie d'adopter la convention suivante, pour tous les TPs :
*Quand vous utilisez un ' : on est au niveau de PHP.
*Quand vous utilisez un " : on est au niveau du HTML.
 
 
En adoptant cette convention, vous saurez toujours si vous êtes au niveau de PHP ou bien de HTML.
 
Exemple : Gestion des apostrophes et des guillemets recommandée
<source lang="php">
<?php
echo '<div class="contenu">blablabla</div>';
?>
</source>
 
 
Pour la clarté du code et de vos idées, je conseille donc ceci :
<source lang="php">
<?php
$age=18;
echo 'J\'ai '.$age.' ans.';
?>
</source>
 
Attention, il faut un caractère d'échappement dans le contenu de mon HTML, entre deux balises, si j'ai une apostrophe dans mon texte (ce qui revient assez rarement).
 
Exemple :
<source lang="php">
<?php
echo'<div class="contenu">L\'hirondelle vole à tire d\'ailes vers l\'Europe du Nord : L\'hiver s\'éteint.</div>';
?>
</source>
 
== TP ==
=== Utiliser les variables PHP ===
A partir d'une page vierge et sans copier-coller dans Eclipse, vous allez créer une nouvelle page monCV.php qui devra afficher ceci :
 
<br/>
'''Nom Prénom'''<br/>
'''Adresse'''<br/>
'''Code postal Ville'''<br/>
'''Téléphone'''<br/>
<br/>
Expériences :<br/>
Du '''06/02/2011''' au '''06/03/2011''' : '''Ingénieur''' ('''BorderCloud''') <br/>
'''Conception du backoffice pour les ressources humaines permettant d’agréger les candidatures sur une seule application via la technologie Linked Data.''' <br/>
Mots clés : '''PHP, SPARQL, HTML'''<br/>
 
 
 
Le texte en gras sera affiché par des variables car on va les modifier dans les TPs suivants.
 
Lisez bien les messages d'erreurs de PHP, ils indiquent la ligne à modifier (ou parfois la ligne du dessus).
Il est inévitable de faire beaucoup d'erreurs au début...
 
Pas de copier/coller, utilisez au maximum Eclipse et son débuggeur.
 
{{solution|contenu =
<source lang="php">
<html>
<head><title>Mon CV</title></head>
<body>
<?php
//Initialisation des variables
$nom = 'Dupont';
$prenom = 'Pierre';
$adresse = '2 rue Carnot';
$code_postal = 92130;
$ville = 'Issy-les-Moulineaux';
$telephone = '0101010101';
$date_debut = '06/02/2011';
$date_fin = '06/03/2011';
$poste = 'Ingénieur ';
$societe = 'BorderCloud';
$description = 'Conception du backoffice pour les ressources humaines permettant d\'agréger les candidatures sur une ...';
$mot_cle1 = 'SPARQL';
$mot_cle2 = 'PHP';
$mot_cle3 = 'HTML';
$poste_actuel = true;
//affichage
?>
<b><?php echo $nom.' '.$prenom; ?></b><br/>
<b><?php echo $adresse; ?></b><br/>
<b><?php echo $code_postal.' '.$ville; ?></b><br/>
Tel : <b><?php echo $telephone; ?></b><br/>
<br/>
Expériences : <br/>
<?php echo '<b>Du '.$date_debut.' au '.$date_fin.'</b>'; ?>
: <?php echo '<b>'.$poste.' ('.$societe.')</b>' ?><br/>
<?php echo '<b>'.$description.'</b><br/>' ?>
Mots clés : <b><?php echo $mot_cle1.', '.$mot_cle2.', '.$mot_cle3; ?></b><br/>
</body>
</html>
</source>
}}
 
=== Utiliser une condition===
Ajoutez la condition : si toujours en poste, remplacer « Du 06/02/2011 au 06/03/2011 » par « Depuis le 06/02/2011 »
{{solution|contenu =
<source lang="php">
<html>
<head><title>Mon CV</title></head>
<body>
<?php
//Initialisation des variables
$nom = 'Dupont';
$prenom = 'Pierre';
$adresse = '2 rue Carnot';
$code_postal = 92130;
$ville = 'Issy-les-Moulineaux';
$telephone = '0101010101';
$date_debut = '06/02/2011';
$date_fin = '06/03/2011';
$poste = 'Ingénieur ';
$societe = 'BorderCloud';
$description = 'Conception du backoffice pour les ressources humaines permettant d\'agréger les candidatures sur une ...';
$mot_cle1 = 'SPARQL';
$mot_cle2 = 'PHP';
$mot_cle3 = 'HTML';
$poste_actuel = true;
//affichage
?>
<b><?php echo $nom.' '.$prenom; ?></b><br/>
<b><?php echo $adresse; ?></b><br/>
<b><?php echo $code_postal.' '.$ville; ?></b><br/>
Tel : <b><?php echo $telephone; ?></b><br/>
<br/>
Expériences : <br/>
<?php
if ($poste_actuel){
echo '<b>Depuis le '.$date_debut.'</b>';
}else{
echo '<b>Du '.$date_debut.' au '.$date_fin.'</b>';
}
?>
: <?php echo '<b>'.$poste.' ('.$societe.')</b>' ?><br/>
<?php echo '<b>'.$description.'</b><br/>' ?>
Mots clés : <b><?php echo $mot_cle1.', '.$mot_cle2.', '.$mot_cle3; ?></b><br/>
</body>
</html>
</source>
}}
 
[[Catégorie:SPARQL Protocol and RDF Query Language]]