Afficher et formater les chaines de caractères
Objectif:
- Utiliser les fonctions d'affichage et formatage des chaines de caractères.
Énonce :
- Etant donné le code suivant :
<?php
$a=2;
$b=12;
$r=$a+$b;-
Utiliser l'instruction "echo" afin d'afficher le résultat sous la forme suivante :
2+12=14 "by echo"
$a+$b=14 "by echo"
- même question en utilisant l'instruction "print" .
-
- Ecrire un script qui permet d'afficher les mots d'une phrase donnée avec une initiale en majuscule .
- Utiliser la fonction "str_pad()" afin de formater l'affichage d'un sommaire composé d'une suite de titres et leurs numéros de page de la façons suivante :
Exemple d’exécution :
Chapitres Pages
Structures de base.....................1
Les classes............................5$titre1= "Structures de base"; $titre2="Les classes"; $page1="1"; $page2="5";
- Ecrivez une boucle qui affiche le code ASCII de chaque lettre de la chaîne "PHP 7 news" sur une ligne différente .
Exemple d’exécution :
le code ASCII du caractere " P " est: 80
le code ASCII du caractere " H " est: 72
le code ASCII du caractere " P " est: 80
le code ASCII du caractere " " est: 32
le code ASCII du caractere " 7 " est: 55
le code ASCII du caractere " " est: 32
le code ASCII du caractere " n " est: 110
le code ASCII du caractere " e " est: 101
le code ASCII du caractere " w " est: 119
le code ASCII du caractere " s " est: 115 - Rédigez le script qui permet d'afficher la chaîne "<ul><li>item1</li><li>item2</li></ul>" telle quelle.
- Avec l'instruction echo on peut afficher une ou plusieurs chaines de caractères . Pour afficher un caractères spécial comme les guillemets " ou dollar $ ..., il doit être précédé par le caractère d'échappement (\).
<?php $a=2; $b=12; $r=$a+$b; //1ere possibilité: afficher les différentes variables séparées par des virgules //L’échappement (\) donne au guillemet sa signification littérale . echo $a,"+",$b,"=",$r," ","\"by echo\""; echo "<br>"; echo "\$a","+","\$b","=",$r," ","\"by echo\""; echo "<br>"; // 2eme possibilité : on met l'ensemble des variables dans une seule chaîne. echo "$a+$b=$r \"by echo\" "; echo "<br>"; echo "\$a+\$b=$r \"by echo\" "; echo "<br>"; // 3eme possibilité: on peut faire des concaténations echo $a."+".$b."=".$r." \"by echo\""; echo "<br>"; echo "\$a"."+"."\$b"."=".$r." \"by echo\"";
l'instruction print permet d'afficher une chaîne de caractère:
print "$a+$b=$r \"by print\" "; print "<br>"; print "\$a+\$b=$r \"by print\" "; print "<br>"; //on peut faire des concaténations print $a."+".$b."=".$r." \"by print\""; print "<br>"; print "\$a"."+"."\$b"."=".$r." \"by print\"";
- Pour mettre la première lettre d'un mot en majuscule on peut utiliser la fonction ucwords():
$ch="les chaines de caractères"; echo ucwords($ch);
- La fonction str_pad() permet de compléter une chaîne jusqu'à une taille donnée , soit sur le coté gauche soit le coté droit (exemple ..........mot ou mot.........) ce qui va simplifier l'alignement vertical d'affichage:
$titre1= "Structures de base";
$titre2="Les classes";
$page1="1";
$page2="5";
echo "<br>";
echo "<pre>";
//on complète par des espaces pour la première ligne jusqu'à arriver à 20 caractères
//pour les numéros de pages on complète sur le coté gauche.
echo str_pad("Chapitres",20," "),str_pad("Pages",20," ",STR_PAD_LEFT),"<br>";
echo str_pad($titre1,20,"."),str_pad($page1,20,".",STR_PAD_LEFT),"<br>";
echo str_pad($titre2,20,"."),str_pad($page2,20,".",STR_PAD_LEFT),"<br>";
echo "</pre>";on a enveloppé le texte par la balise <pre> pour lui appliquer une police à largeur fixe.
- On va faire une boucle qui va parcourir la chaîne , pour cela on a besoin de la fonction strlen($s) qui renvoie la longueur d'une chaine et la fonction ord($s) qui renvoie le code ASCII d'un caractère.
$s="PHP 7 news"; for ($i=0; $i <strlen($s) ; $i++) { echo "le code ASCII du caractere \" $s[$i] \" est: ", ord($s[$i]),"<br>"; }
-
Pour interdire l'interprétation d'un code html on doit convertir les caractères éligibles en entités html soit par la fonction htmlspecialchars() ou htmlentities()
echo htmlspecialchars("<ul> <li>item 1</li> <li> item 2</li> </ul>"); echo htmlentities("<ul> <li>item 1</li> <li> item 2</li> </ul>");