Bonjours,

Je suis en train de faire un système de news et jusqu'à présent, il y a une liste de tous les news puis un page dédié à un news sous la forme

news.php?id=...

, et je voudrais quand j'ajoute mon article avec mon formulaire qui il y ait un titre avec tous les caractères (accents, espace) et un autre avec les accents supprimé et les espaces transformés en -

Merci de votre aide par avance,
Cordialement.

4 réponses


Lartak
Réponse acceptée

Bonsoir.
Oui, d'après son explication, c'est surement un système de "slug" (formatage des caractères non alphanumérique) qu'il veut.

Regarde sur internet "Rewrite URL PHP" tu auras + d'informations.
A SAVOIR : sa se passe par fichier .htaccess ;)

Bonsoir,

Pour moi il parle aussi de la fonction de slug pour creer un routing non ?

Cordialement

il faut passer ton url sur des pattern regex avec la function preg_replace de php et le tour est joué ;)
Trouvé ici : http://tassedecafe.org/31-nettoyer-chaine-caracteres-php.html

function nettoyerChaine($chaine)
{
    $caracteres = array(
        'À' => 'a', 'Á' => 'a', 'Â' => 'a', 'Ä' => 'a', 'à' => 'a', 'á' => 'a', 'â' => 'a', 'ä' => 'a', '@' => 'a',
        'È' => 'e', 'É' => 'e', 'Ê' => 'e', 'Ë' => 'e', 'è' => 'e', 'é' => 'e', 'ê' => 'e', 'ë' => 'e', '€' => 'e',
        'Ì' => 'i', 'Í' => 'i', 'Î' => 'i', 'Ï' => 'i', 'ì' => 'i', 'í' => 'i', 'î' => 'i', 'ï' => 'i',
        'Ò' => 'o', 'Ó' => 'o', 'Ô' => 'o', 'Ö' => 'o', 'ò' => 'o', 'ó' => 'o', 'ô' => 'o', 'ö' => 'o',
        'Ù' => 'u', 'Ú' => 'u', 'Û' => 'u', 'Ü' => 'u', 'ù' => 'u', 'ú' => 'u', 'û' => 'u', 'ü' => 'u', 'µ' => 'u',
        'Œ' => 'oe', 'œ' => 'oe',
        '$' => 's');

    $chaine = strtr($chaine, $caracteres);
    $chaine = preg_replace('#^A-Za-z0-9]+#', '-', $chaine);
    $chaine = trim($chaine, '-');
    $chaine = strtolower($chaine);

    return $chaine;
}