Bonjour
Mes entetes de page (title, description...) ne s'affichent pas, parceque j'utilise les caractères accentés.
Sachant que j'utilise l'endodage utf8, comment remedier à ce type de problème.
Merci d'avance.
Bonjour
Mes entetes de page (title, description...) ne s'affichent pas, parceque j'utilise les caractères accentés.
Sachant que j'utilise l'endodage utf8, comment remedier à ce type de problème.
Merci d'avance.
peux tu préciser? par exemple la page actuelle (developpez) a des accents (répondre au sujet) dans title et aucun soucis.
As tu préciser l'encodage html de la page?
essaye de placer un url decode en php dans la sortie de ton title ça résout souvent bien des problèmes.
Les pages du site s'affichent bien, parcontre les url donnent ceci:
Code : Sélectionner tout - Visualiser dans une fenêtre à part /1/Mort+du+policier+%C3%A9cras%C3%A9+
Les caractères spéciaux doivent être encodés lorsqu'ils font partie d'une URL. Certains navigateurs affiche les bons caractères dans l'URL mais ce n'est qu'une retranscription lisible pour l'internaute.
Si tu ne souhaites pas avoir ces caractères dans l'URL tu pourrais nettoyer tes titres de pages ou les exculant.
Voici une de mes ptites fonctions perso :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 function niceUrl($uncleaned_url){ return preg_replace( array("([\40])" , "([^a-zA-Z0-9-])", "(-{2,})"), array('-', '', '-'), trim($uncleaned_url) ); }
une autre possibilité consiste à utiliser l'objet slug dans symfony, entièrement intégré a l'ORM doctrine, il va te générer un champ unique pour chaque enregistrement garanti sans accentué a partir du ou des champs que tu souhaites y indiquer.
Ensuite, utilise les routes de symfony pour indiquer que le champ de liaison est le slug et non pas l'Id.
Enfin, il te suffi d'utiliser une des nombreuses fonctions qui construisent un lien avec le nom du lien et l'objet à mettre en lien pour que l'url avec les données en slug soit automatiquement utilisée.
Et si tu veux changer le format des slug, tu n'as pas une ligne de code à modifier dans ton application, (sauf peut-être celles qui génère un slug très personnalisé si tu choisissais cette possibilité, très rarement utilisée)
Regarde sur le site web de symfony, dans le tuto Jobeet Job, tous y est clairement expliqué.
Et, conseil perso, évite les accentués dans les liens internet.
Le seul soucis c'est que j'ai utilisé la class:
et que le lien création de blog, se transforme en
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 static public function slugify($text) { // replace all non letters or digits by - $text = preg_replace('/\W+/', '-', $text); // trim and lowercase $text = strtolower(trim($text, '-')); return $text; }
, les accents sont mal interprétés.
Code : Sélectionner tout - Visualiser dans une fenêtre à part cra-ation-de-blog
voici un extrait du fichier routing.yml
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 pages_show: url: /:id/:title class: sfDoctrineRoute options: { model: Pages, type: object } param: { module: pages, action: show } requirements: sf_method: [get]
Partager