Problème avec le str_replace et les URL
leinou
Messages postés
5
Statut
Membre
-
Dalida Messages postés 7114 Date d'inscription Statut Contributeur Dernière intervention -
Dalida Messages postés 7114 Date d'inscription Statut Contributeur Dernière intervention -
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
- Le fichier pdf à télécharger est disponible avec le même nom sur le site de bell canada. 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 bell canada ? - Forum Réseaux sociaux
- Url defense - Forum Virus
- Comment changer url iptv ✓ - Forum Box et Streaming vidéo
- Ping url ✓ - Forum Windows
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…