Aller au contenu

Chaines de caractères

Rappel

Les chaines de caractères en PHP sont délimitées par des guillemets simples ou par des guillemets doubles. Les guillemets doubles permettent l’interpolation des variables et l’interprétation de certaines séquences d’échappement, tandis que les guillemets simples les traitent comme du texte brut. >> Voir le rappel

Concaténation de chaines

L'opérateur de concaténation de chaine est le point ".".

Concaténation de chaines
<?php
    $nom = 'Dayne';
    $prenom = 'Arthur' . 'Jr';

    $nom .= $prenom;
    echo $nom;

Comparaison de chaines

La comparaison de chaines s'effectue à l'aide de l'opérateur "==" ou une des fonctions de comparaison.

==

  • Compare les chaînes en tenant compte de la casse.
  • Effectue une comparaison typée faible, ce qui signifie que PHP tente de convertir les types si nécessaire (exemple : comparaison entre un nombre et une chaîne).
Comparaison ==
<?php
$ch1 = "Bonjour";
$ch2 = "bonjour";

if ($ch1 == $ch2) {
    echo "Les chaînes sont égales.";
} else {
    echo "Les chaînes sont différentes.";
}
// Résultat : "Les chaînes sont différentes."


$ch1 = 4;
$ch2 = "4";

if ($ch1 == $ch2) {
    echo "Les chaînes sont égales.";
} else {
    echo "Les chaînes sont différentes.";
}
// Résultat : "Les chaînes sont égales."

===

  • Compare à la fois la valeur et le type.
===
<?php

$ch1 = 4;
$ch2 = "4";

if ($ch1 === $ch2) {
    echo "Les chaînes sont égales.";
} else {
    echo "Les chaînes sont différentes.";
}
// Résultat : "Les chaînes sont différentes."

strcmp

strcmp — Comparaison binaire de chaînes

Comparaison sensible à la casse.

Renvoie :

- 0 si les chaînes sont identiques.

- Un entier négatif si $ch1 < $ch2.

- Un entier positif si $ch1 > $ch2.

Référence officielle >>

strcmp
<?php
echo strcmp("hello", "Hello");  // Renvoie un nombre positif (différence due à la casse)

strcasecmp

strcasecmp — Comparaison insensible à la casse de chaînes binaires

Comparaison insensible à la casse.

Même principe que strcmp, mais ignore les différences de majuscules/minuscules.

Référence officielle >>

strcasecmp
<?php
echo strcasecmp("hello", "Hello");  // Renvoie 0 (considérées identiques)

iième caractère d'une chaine

L'accès au iième caractère d'une chaine (0 à longueur de la chaine - 1) s'effectue selon l'une de ces deux syntaxes:

[i]

Privilégiez l'utilisation des crochets plutôt que des accolades par similitude avec la plupart des langages modernes.

<?php
$chaine = "Hello";
echo $chaine[1]; // Affiche e

Chaines et entités HTML

Rappel sur les entités HTML

Les entités HTML permettent d'afficher des caractères spéciaux qui :

  • n'existent pas sur un clavier standard (ex. ©, €, ®…).

  • sont réservés en HTML et doivent être échappés (<, >, ", '…).

htmlspecialchars($str)`

Référence officielle >>

Convertit uniquement les caractères spéciaux suivants :

Caractère Entité HTML
& &amp;
< &lt;
> &gt;
" &quot;
' &#039; (dans certaines configurations uniquement)

htmlentities($str)

Convertit toutes les entités HTML possibles, y compris les caractères accentués (é, à, ç, etc.).

Référence officielle >>

htmlspecialchars
<?php
$a = 'La balise  <br>  est un saut de ligne à utiliser uniquement dans un  <p> ';
echo $a;
echo htmlspecialchars($a), '<br>';
echo htmlentities($a), '<br>';

💡 Tip: Regarder le code source généré. Comment est généré le caractère à ? Comment sont générées et affichées les balises html ?

De nombreuses fonctions de manipulation des chaines sont proposées dans la documentation officielle. Référence officielle >>