📚 Fiche Résumé - Séance 6 : Manipulation de chaînes et formulaires

🎯 Objectifs de la séance

📝 1. Récupération des données de formulaire

$_POST - Récupérer les données d'un formulaire

<form action="traitement.php" method="post">
    <input type="text" name="nom">
    <input type="submit" value="Envoyer">
</form>
<?php
// Dans traitement.php
$nom = $_POST['nom'];
echo "Bonjour " . $nom;
?>
⚠️ Important : Toujours vérifier qu'une variable POST existe avec isset() avant de l'utiliser !
if (isset($_POST['nom'])) {
    $nom = $_POST['nom'];
}

Éléments de formulaire courants

Élément Code HTML Récupération PHP
Input texte <input type="text" name="prenom"> $_POST['prenom']
Textarea <textarea name="message"></textarea> $_POST['message']
Select <select name="choix"><option value="1">...</option></select> $_POST['choix']
Radio <input type="radio" name="genre" value="H"> $_POST['genre']
Checkbox <input type="checkbox" name="newsletter" value="oui"> $_POST['newsletter']

🔤 2. Fonctions de manipulation de chaînes

strtoupper() - Convertir en MAJUSCULES

$texte = "bonjour";
$majuscule = strtoupper($texte);
// Résultat: "BONJOUR"

strtolower() - Convertir en minuscules

$texte = "BONJOUR";
$minuscule = strtolower($texte);
// Résultat: "bonjour"

ucfirst() - Première lettre en majuscule

$texte = "bonjour";
$resultat = ucfirst($texte);
// Résultat: "Bonjour"

ucwords() - Chaque mot avec majuscule

$texte = "bonjour le monde";
$resultat = ucwords($texte);
// Résultat: "Bonjour Le Monde"

strlen() - Longueur d'une chaîne

$texte = "Bonjour";
$longueur = strlen($texte);
// Résultat: 7

trim() - Supprimer espaces début/fin

$texte = "  bonjour  ";
$propre = trim($texte);
// Résultat: "bonjour"

🔄 3. Remplacement de chaînes

str_replace() - Remplacer des segments

Syntaxe : str_replace(recherche, remplacement, texte)

Exemple simple :
$texte = "Bonjour le monde";
$nouveau = str_replace("monde", "PHP", $texte);
// Résultat: "Bonjour le PHP"
Remplacements multiples :
$texte = "Nedoe e mel eu toboe";
$texte = str_replace("e", "a", $texte);
$texte = str_replace("o", "i", $texte);
// Résultat: "Nadie a mal au tibia"
Remplacer des balises :
$texte = "Bonjour.[br]Comment allez-vous ?[br]";
$html = str_replace("[br]", "<br>", $texte);
// Les [br] deviennent des vrais sauts de ligne HTML

Système BBCode simple

$message = "[b]Gras[/b] et [i]italique[/i]";

$message = str_replace("[b]", "<strong>", $message);
$message = str_replace("[/b]", "</strong>", $message);
$message = str_replace("[i]", "<em>", $message);
$message = str_replace("[/i]", "</em>", $message);
$message = str_replace("[u]", "<u>", $message);
$message = str_replace("[/u]", "</u>", $message);
$message = str_replace("\n", "<br>", $message);

// Résultat: <strong>Gras</strong> et <em>italique</em>

🎯 4. Expressions régulières (REGEX)

preg_replace() - Remplacement avec REGEX

Syntaxe : preg_replace(motif, remplacement, texte)

Transformer un lien BBCode en HTML :
$texte = "[url=https://www.mmibordeaux.com/]MMI Bordeaux[/url]";

$pattern = '#\[url=(.+?)\](.+?)\[/url\]#';
$replacement = '<a href="$1">$2</a>';
$html = preg_replace($pattern, $replacement, $texte);

// Résultat: <a href="https://www.mmibordeaux.com/">MMI Bordeaux</a>

Explication du motif REGEX

💡 Outils utiles :

📋 5. Exemple complet : Formulaire avec transformations

<form method="post">
    <textarea name="text"></textarea><br>
    <select name="choix">
        <option value="majuscule">Majuscule</option>
        <option value="minuscule">Minuscule</option>
    </select><br>
    <input type="submit" value="Transformer">
</form>

<?php
if (isset($_POST['text']) && isset($_POST['choix'])) {
    $texte = $_POST['text'];
    $choix = $_POST['choix'];
    
    if ($choix === 'majuscule') {
        echo strtoupper($texte);
    } else if ($choix === 'minuscule') {
        echo strtolower($texte);
    }
}
?>

📋 6. Pré-remplir un formulaire avec les valeurs soumises

Attribut checked pour les radios

<input type="radio" name="reponse" value="vrai" 
    <?php if(isset($_POST['reponse']) && $_POST['reponse'] === 'vrai') echo 'checked'; ?>>
Vrai

Attribut selected pour les options

<option value="fr" 
    <?php if(isset($_POST['langue']) && $_POST['langue'] === 'fr') echo 'selected'; ?>>
Français</option>

Attribut value pour les inputs

<input type="text" name="nom" 
    value="<?php if(isset($_POST['nom'])) echo $_POST['nom']; ?>">

✅ Points clés à retenir

💡 Tableau récapitulatif des fonctions

Fonction Description Exemple
strtoupper($str) Convertit en MAJUSCULES strtoupper("test") → "TEST"
strtolower($str) Convertit en minuscules strtolower("TEST") → "test"
ucfirst($str) 1ère lettre en majuscule ucfirst("test") → "Test"
strlen($str) Longueur de la chaîne strlen("test") → 4
trim($str) Supprime espaces début/fin trim(" test ") → "test"
str_replace($old, $new, $str) Remplace une chaîne str_replace("a", "o", "chat") → "chot"
preg_replace($pattern, $new, $str) Remplace avec REGEX Voir exemples ci-dessus