urlencode et ses caractéristiques

WRInaute discret
Salut si j'ai un titre d'article avace caractére spéciaux...? ! é ô ....
j'utilise $encodage= urlencode($titre); avant et donc :
<a href="?id=$encodage">c'est l'histoire de... ?!! </a>
J'obtiens des + pour les espaces mais j'ai toujours les ? remplacé par des valeurs héxa...
Les moteurs peuvent interpréter de différente façon et ne pas indiquer le bon lien donc l'article n'est pas trouvé juste un lien différent !!!
Comment rendre un lien 100% compatible et l'est-t-il uniquement avec urlencode ?
Merci.
 
WRInaute impliqué
zemage a dit:
J'obtiens des + pour les espaces mais j'ai toujours les ? remplacé par des valeurs héxa...
après ton url_encode, tu fais un replace pour remplacer la valeur hexa par le caractère...
si tu veux garder ton '?'
sinon, vire le simplement.
non ?! :roll:
 
WRInaute discret
Je vois, mais le truc c'est que je m'appuie sur cet url pour les données :
et de plus je ne peux pas à l'avance placer tous les caracteres spéciaux
exemple : article.php?id=c%27est+un+BLOG+%21%21
pour c'est un blog !!
donc là il y a ' et !! et je ne sais pas si laisser comme cela est bien indexé ?
Exemple typique sur cette requête :
je n'avais pas placé d'urlencode avant de voir cela
https://www.google.fr/search?q=convertis ... r:eek:fficial
Le résultat cest que sur mon site il ne trouve rien :lol:

Donc à présent avec urlencode j'espère que ce sera mieux mais je ne sais pas c'est pourquoi je demande..
 
WRInaute impliqué
???

tu pourquoi ne pas replacer tous les caractères accentués par leur forme "non accentuée" 'é' -> 'e'
et les caractères spéciaux par un '-' ?
 
WRInaute passionné
zemage a dit:
Les moteurs peuvent interpréter de différente façon et ne pas indiquer le bon lien donc l'article n'est pas trouvé juste un lien différent !!!
Il n'y a qu'une seule maniere d'interpreter une URL donc le lien est forcement bon. Si le bon article n'est pas trouve, ce que tu ne decodes pas correctement. Il faut aussi utiliser urldecode().
zemage a dit:
Comment rendre un lien 100% compatible et l'est-t-il uniquement avec urlencode ?
Oui.
 
WRInaute accro
zemage a dit:
Ouai c'est un idée mais comment faire ?
avec ereg( ?
J'utilise cette fonction
Code:
function supprime_accents ($chaine) {
$a = "àáâãäåòóôõöøèéêëçìíîïùúûüÿñAÀÁÂÃÄÅBCDEÈÉËÊFGHIÌÍÎÏJKLMNOÒÓÔÕÖPQRSTUÙÚÛÜVWXYÝZ&*' /,;:)(";
$b = "aaaaaaooooooeeeeciiiiuuuuynaaaaaaabcdeeeeefghiiiiijklmnoooooopqrstuuuuuvwxyyz----------";
return (strtr($chaine, $a, $b));
}
 
WRInaute discret
Serious a dit:
Il n'y a qu'une seule maniere d'interpreter une URL donc le lien est forcement bon. Si le bon article n'est pas trouve, ce que tu ne decodes pas correctement. Il faut aussi utiliser urldecode().
ok, Je suis d'accord j'utilise urlencode pour l'id du lien uniquement mais pour la base de donnée (recherche) je ne l'encode pas mon titre ...Et là cela fonctionne...

Leonick pour ta fonction je vais regarder, merci.

Merci @ vous.
 
Haut