Problème avec le str_replace et les URL
leinou
Messages postés
5
Statut
Membre
-
Dalida Messages postés 7114 Statut Contributeur -
Dalida Messages postés 7114 Statut Contributeur -
Bonjour,
J'utilise un str_replace pour enlever tout ce qui pourrait gêner dans l'URL avec ce code :
<?php
$requete = mysql_query("SELECT * FROM soin WHERE type_soin LIKE 'soin-localise'") or die(mysql_error());
while($donnees = mysql_fetch_array($requete)){
//récupère le nom
$text=$donnees['nom_soin'];
$accents = array("à", "â", "ç", "é", "è", "ê", "ë", "î", "ï", "ô", "û", "’");
$corrige = array("& agrave;", "& acirc;", "& ccedil;", "& eacute;", "& egrave;", "& ecirc;", "& euml;", "& icirc;", "& iuml;", "& ocirc;", "& ucirc;", "& rsquo;");
// les espaces dans les caractères spéciaux sont juste pour l'affichage sur ce forum
$newtext = str_replace($accents, $corrige, $text);
//URL rewriting
$accents2 = array("à", "â", "ç", "é", "è", "ê", "ë", "î", "ï", "ô", "û", "’");
$corrige2 = array("a", "a", "c", "e", "e", "e", "e", "i", "i", "o", "u", "");
$newnom = str_replace($accents2, $corrige2, $newtext);
?>
<li class="t3"><a href="?type=soin-localise&soin=<?php echo $newnom; ?>" class="blue2" ><?php echo $newtext; ?></a></li>
<?php
}
?>
Malheuresement, lorsque je le teste, il ne semble pas effectuer les remplacements ce qui donne des urls non valides.
Si quelqu'un voit un problème dans le code ou bien possède une autre solution, je suis preneur.
Cordialement.
J'utilise un str_replace pour enlever tout ce qui pourrait gêner dans l'URL avec ce code :
<?php
$requete = mysql_query("SELECT * FROM soin WHERE type_soin LIKE 'soin-localise'") or die(mysql_error());
while($donnees = mysql_fetch_array($requete)){
//récupère le nom
$text=$donnees['nom_soin'];
$accents = array("à", "â", "ç", "é", "è", "ê", "ë", "î", "ï", "ô", "û", "’");
$corrige = array("& agrave;", "& acirc;", "& ccedil;", "& eacute;", "& egrave;", "& ecirc;", "& euml;", "& icirc;", "& iuml;", "& ocirc;", "& ucirc;", "& rsquo;");
// les espaces dans les caractères spéciaux sont juste pour l'affichage sur ce forum
$newtext = str_replace($accents, $corrige, $text);
//URL rewriting
$accents2 = array("à", "â", "ç", "é", "è", "ê", "ë", "î", "ï", "ô", "û", "’");
$corrige2 = array("a", "a", "c", "e", "e", "e", "e", "i", "i", "o", "u", "");
$newnom = str_replace($accents2, $corrige2, $newtext);
?>
<li class="t3"><a href="?type=soin-localise&soin=<?php echo $newnom; ?>" class="blue2" ><?php echo $newtext; ?></a></li>
<?php
}
?>
Malheuresement, lorsque je le teste, il ne semble pas effectuer les remplacements ce qui donne des urls non valides.
Si quelqu'un voit un problème dans le code ou bien possède une autre solution, je suis preneur.
Cordialement.
A voir également:
- Problème avec le str_replace et les URL
- Url - Guide
- Url iptv - Forum Box et Streaming vidéo
- Comment changer url iptv - Forum Créer un site
- Ping url ✓ - Forum Windows
- Le fichier pdf à télécharger est disponible avec le même nom sur le site de associations.gouv.fr. mais vous ne le trouverez pas directement avec un moteur de recherche… quelle est l’url de ce fichier pdf sur le site web de associations.gouv.fr ? - Forum Réseaux sociaux
3 réponses
Hé bien tu a créé des tableaux et tu essaye de les lire sans boucles , c'est certainement ça ton probleme .
Je te conseille de structurer ton code de la façon suivante :
$urlrewriting = array(
'é'=>'e',
'à'=>'a',
'ô'=>'o',
'ï'=>'i',
);
foreach($urlrewriting as $cle=>$valeur)
{
$newtext = str_replace($cle,$valeur, $newtext);
}
etc pour le reste
Je te conseille de structurer ton code de la façon suivante :
$urlrewriting = array(
'é'=>'e',
'à'=>'a',
'ô'=>'o',
'ï'=>'i',
);
foreach($urlrewriting as $cle=>$valeur)
{
$newtext = str_replace($cle,$valeur, $newtext);
}
etc pour le reste
Dalida , tu propose effectivement la meilleure solution mais ai le bon sens de luis expliquer pourquoi.
La fonction urlencode est prevue pour remplacer automatiquement les accents et autres caracteres non specifiques aux url , il te suffira donc d'utiliser la fonction urlencode et urldecode pour convertir tes url sans risque
La fonction urlencode est prevue pour remplacer automatiquement les accents et autres caracteres non specifiques aux url , il te suffira donc d'utiliser la fonction urlencode et urldecode pour convertir tes url sans risque
salut,
pas la peine, puisque tu es là !
-:oþ
mais tu as raison. habituellement, je mets le lien vers le manuel.
pas toujours le temps…
pas la peine, puisque tu es là !
-:oþ
mais tu as raison. habituellement, je mets le lien vers le manuel.
pas toujours le temps…