Pour ce tuto sur PHP, nous allons voir comment écrire les conditions if … else … pour permettre ou bloquer des actions et de l’affichage HTML.

Le premier point abordé sera une démonstration de plusieurs d’écriture des conditions. En suite nous verrons un exemple concret pour afficher un lien en fonction du navigateur qu’utilise le navigateur.

Déposez gratuitement votre projet sur Codeur.com, recevez une quinzaine de devis et sélectionnez le développeur web idéal.

Trouver un développeur web

Différentes écritures d’une condition en PHP

Nous allons voir qu’il existe plusieurs façons d’écrire les conditions if … else … en PHP. Il n’est pas obligatoire de savoir toutes les utiliser. Cependant, les connaître et savoir les lire est très pratique pour pouvoir interpréter le code d’autres personnes.

Écriture de base

<?php
$success = true;
if( $success ) {
  echo '<div class="success">Action effectuée</div>';
}
else {
  echo '<div class="error">Erreur détectée</div>';
}

Voir le code

Sans les accolades

Il est également possible d’écrire une condition if … else … sans les accolades quand il n’y a qu’une seule action.

Une condition sans accolade ne s’applique qu’à la première commande qui suit. Si vous effectuez deux actions après un if sans accolade et que la condition est fause, la seconde action sera tout de même effectuée.

<?php
$success = true;
if( $success )
  echo '<div class="success">Action effectuée</div>';
else
  echo '<div class="error">Erreur détectée</div>';

Voir le code

Écriture ternaire

Une écriture ternaire est une condition simplifiée qui enregistre un résultat selon une condition réussie et une condition échouée.

Seulement, au lieu d’écrire if( condition ) { commande 1 } else { commande 2 }, on va écrire $resultat = condition ? commande 1 : commande 2;.

<?php
$success = true;
$class = $success ? 'success' : 'error';
$text = $success ? 'Action effectuée' : 'Erreur détectée';
echo "<div class=\"{$class}\">{$text}</div>";

Voir le code

Dans le HTML : écriture 1

Il est possible d’écrire du PHP (et donc des conditions) dans du code HTML.

Le HTML ne doit pas lui-même être dans une balise <?php. C’est l’inverse : il faut ouvrir une balise <?phpdans le HTML.

Les conditions s’écrive dans les balises <?php alors que les résultats s’écrivent en dehors.

<?php
  $success = true;
?>
<div class="<?php if($success) { echo 'success'; } else { echo 'error'; } ?>">
  <?php if($success) { echo 'Action effectuée'; } else { echo 'Erreur détectée'; } ?> 
</div>

Voir le code

Dans le HTML : écriture 2

Il existe une écrite plus simple à lire, pour faire la même chose, sans accolade, mais avec des :.

<?php
  $success = true;
?>
<div class="<?php if($success) : ?>success<?php else : ?>error<?php endif ?>">
  <?php if($success) : ?>Action effectuée<?php else : ?>Erreur détectée'<?php endif ?> 
</div>

Voir le code

Dans le HTML : écriture 3 (ternaire)

Enfin, il est possible de mixer les écritures pour faire du ternaire dans le HTML. On s’en sert pour écrire des valeurs ou textes, pas du HTML complet.

<?php
  $success = true;
?>
<div class="<?php echo $success ? 'success' : 'error'; ?>">
  <?php echo $success ? 'Action effectuée' : 'Erreur détectée'; ?> 
</div>

Voir le code

 

Application : télécharger un plugin Chrome

Il est possible de récupérer les données du navigateur avec la variable $_SERVER['HTTP_USER_AGENT'].

<?php
echo $_SERVER['HTTP_USER_AGENT']

Exemple de résultat :

Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.41 Safari/537.36

Grâce à cette variable, on peut retrouver plus informations sur le navigateur de l’utilisation, comme le nom et la version de ce dernier.

Détecter le navigateur avec PHP

Remarquez que dans l’exemple ci-dessus, on peut « Chrome ». C’est ici que se trouve le nom du navigateur.

Pour extraire cette donnée, nous allons utiliser une regExp avec la fonction preg_match et des conditions.

La méthode pour le navigateur est la même.

$agent = $_SERVER['HTTP_USER_AGENT'];
if( preg_match( '/Firefox/i', $agent ) ) $navigateur = 'Firefox';
elseif( preg_match( '/Mac/i', $agent ) ) $navigateur = 'Mac'; 
elseif( preg_match( '/Chrome/i', $agent ) ) $navigateur = 'Chrome'; 
elseif( preg_match( '/Opera/i', $agent ) ) $navigateur = 'Opera'; 
elseif( preg_match( '/IE/i', $agent ) ) $navigateur = 'IE'; 
else $navigateur = 'Unknown';

echo "Navigateur : {$navigateur}."

Proposer un plugin Chrome ou Firefox

Maintenant que nous savons comment détecter le navigateur, nous allons pouvoir afficher un encart en HTML sur le site pour inviter l’utilisateur à télécharger le plugin.

<section>
  <h2>Un titre ici</h2>
  
  <?php $agent = $_SERVER['HTTP_USER_AGENT']; ?>
  <?php if( preg_match( '/Firefox/i', $agent ) ) : ?>
  <div class="plugin">
    <a href="#">Téléchagez notre plugin pour Firefox</a>
  </div>
  <?php elseif( preg_match( '/Chrome/i', $agent ) ) : ?>
  <div class="plugin">
    <a href="#">Téléchagez notre plugin pour Chrome</a>
  </div>
  <?php endif; ?>

  <p>
    Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
  </p>
</section>

Et voilà, le tour est joué.

 

Notre astuce pour utiliser les conditions IF et ELSE en PHP pour afficher du HTML

Vous connaissez à présent plusieurs façons d’écrire des fonctions if … else … avec PHP et vous êtes également en mesure d’utiliser ces conditions pour afficher ou non du HTML.

En cas de problème avec vos conditions ou la compréhension de ces dernières, vous pouvez demander l’assistance d’un freelance spécialisé sur Codeur.com. Vous trouverez forcément un développeur PHP disponible pour répondre à votre besoin. Le temps de réponse est très rapide et en plus, le dépôt d’une annonce est gratuit.