Execices corrigés chaines de caracteres en php 5 TP et solution php
Exercice 1
Transformez une chaîne écrite dans des casses différentes afin que chaque mot ait une initiale en majuscule.
Transformez une chaîne écrite dans des casses différentes afin que chaque mot ait une initiale en majuscule.
solution
<?php
$ch="TransFOrmeZ
unE ChaîNE écRITe dans des cASses diFFéreNTes afiN
qUe
chAQue MOT ait une inITiale en MAJUSCULE";
echo
ucwords(strtolower($ch));
?>
Le
résultat est le suivant :
Transformez
Une Chaîne Écrite Dans Des Casses Différentes Afin Que Chaque
Mot Ait Une Initiale En Majuscule Remarquez
que la fonction ucwords() permet d’avoir des
majuscules
accentuées.
Exercice 2
En
utilisant la fonction strlen() écrivez une boucle qui affiche chaque
lettre de la chaîne PHP 5 sur une ligne différente.
solution
<?php
$ch="PHP 5";
for($i=0;$i<strlen($ch);$i++)
{
echo "<h3> $ch[$i] </h3>";
}
?>
Exercice 3
Formatez
l’affichage d’une suite de chaînes contenant des nom et prénom
en respectant les critères suivants : un prénom et un nom par
ligne affichés sur 20 caractères; toutes les initiales des mots doivent
se superposer verticalement.
solution
<?php
$nom1="Azerky";
$prenom1="Sophia";
echo sprintf ("<tt>%'_-20s %'_-20s
</tt><br />",$nom1,$prenom1);
$nom2="Bazertudoh";
$prenom2="Jean-Michel";
echo sprintf ("<tt>%'_-20s %'_-20s
</tt><br />",$nom2,$prenom2);
?>
Pour
obtenir de bons résultats il est préférable d’utiliser une police à espacement
fixe en incluant le texte de chaque ligne dans un élément
HTML <tt>. Le résultat obtenu est le suivant :
Azerky______________
Sophia______________
Bazertudoh__________
Jean-Michel_________
Nous
pouvons également utiliser la fonction vsprintf() et passer
les chaînes à afficher dans un tableau multidimensionnel.
solution
<?php
$tab[0][]="Azerky";
$tab[0][]="Sophia";
$tab[1][]="Bazertudoh";
$tab[1][]="Jean-Michel";
for($i=0;$i<count($tab);$i++)
{
echo vsprintf ("<tt>%'_-20s %'_-20s
</tt><br />",$tab[$i]);
}
?>
Exercice 4
Utilisez
les fonctions adéquates afin que la chaîne <form action="script.php">
soit affichée telle quelle et non comme du
code HTML.
solution
<?php
$ch='<form
action="script.php">';
echo
htmlentities($ch);
?>
Le code
HTML de l’affichage est le suivant :
<form
action="script.php">
Exercice 5
À partir
de deux chaînes quelconques contenues dans des variables,
effectuez une comparaison entre elles pour pouvoir les afficher
en ordre alphabétique naturel.
Nous
utilisons la fonction strtolower() avant d’opérer la comparaison,
sinon tous les caractères de A à Z sont avant les caractères
a à z.
solution
<?php
$ch1="alpha";
$ch2="Azéma";
if(strtolower($ch1)<strtolower($ch2)) echo $ch1
," est avant ",
$ch2;
else echo $ch2 ," est avant ", $ch1;
?>
Exercice 6
Effectuez
une censure sur des textes en n’affichant pas ceux qui contiennent
le mot zut.
solution
<?php
$ch="Zut
je me suis trompé";
$modele="zut";
if(eregi($modele,$ch)) echo "Un Mot
censuré";
else
echo $ch
?>
Exercice 7
Créez
une fonction de validation d’une adresse HTTP ou FTP en vous
inspirant de l’exemple 4-12.
Le
modèle doit répondre à la définition suivante :
1.
Commencer par « www »
2. Suivi
par des lettres puis éventuellement un point ou un tiret suivis
d’un deuxième groupe de lettres
3. Se
terminer par un point suivi de l’extension qui peut avoir de 2 à 4
caractères.
Par
exemple, les adresses www.machin.com ou www.machintruc. uk sont
valides.
solution
<?php
//Création
de la fonction de validation
function validhttp($ch)
{
$modele="^(www)\.([a-z0-9]+)(\.|-)?([a-z0-9]*)\.([a-z]{2,4}$)";
$ch=strtolower($ch);
if (ereg($modele, $ch))
{
echo "$ch est valide <br />";
return TRUE;
}
else
{
echo "$ch est invalide <br />";
return
FALSE;
}
}
//Utilisation
de la fonction de validation
$url="www.laposte2.info";
$url2="www.pierre-plus-loin.info";
$url3="www.engels.funphp.com";
validhttp($url);
validhttp($url2);
validhttp($url3);
?>
Les
résultats obtenus sont les suivants :
www.laposte2.info
est valide
www.pierre-plus-loin.info
est invalide
www.engels.funphp.com
est valide
Exercice 8
Créez
une expression régulière pour valider un âge inférieur à 100 ans.
solution
<?php
$modele="^[0-9]?([0-9]?)$";
$age="84";
if (ereg($modele, $age))
{
echo
"$age est un age valide <br />";
return TRUE;
}
else
{
echo "$age est un age invalide <br
/>";
return
FALSE;
}
?>
Le
résultat obtenu est le suivant :
84 est
un age valide
Exercice 9
Dans la
chaîne PHP 5 \n est meilleur \n que ASP \n et
JSP \n réunis, remplacez les caractères \n par <br
/> en utilisant deux méthodes différentes (une fonction ou une
expression régulière).
solution
1. En
utilisant la fonction nl2br()
<?php
$ch="PHP
5 \n est meilleur \n que ASP \n et JSP \n réunis";
echo
"<p>",nl2br($ch),"</p>";
?>
2. En
utilisant une expression régulière et la fonction ereg_replace()
<?php
$ch="PHP
5 \n est meilleur \n que ASP \n et JSP \n réunis";
echo ereg_replace("\n","<br
/>",$ch);
?>
Dans les
deux cas on obtient le même résultat suivant:
PHP 5
est
meilleur
que ASP
et JSP
réunis
Merciii c'est trés utile
RépondreSupprimer