Fonction url clean

WRInaute discret
Bonsoir à tous,

Je reviens vers vous car j'utilise une fonction assez sympathique qui permet d'avoir de belles urls du style :

http://site.fr/Peux-tu m'aider s'il te plaît?
devient :
http://site.fr/peux-tu-m-aider-s-il-te-plait

Seulement, j'arrive à encoder bien mes urls mais vu que après je récupère mes données avec un $_GET, les données se retrouvent encodés... Sauriez-vous comment faire la même fonction inversée pour décoder les url au retour ?

Voici la fonction :

Code:
function toAscii($str, $replace=array(), $delimiter='-') {
	if( !empty($replace) ) {
		$str = str_replace((array)$replace, ' ', $str);
	}

	$clean = iconv('UTF-8', 'ASCII//TRANSLIT', $str);
	$clean = preg_replace("%[^-/+|\w ]%", '', $clean);
	$clean = strtolower(trim($clean, '-'));
	$clean = preg_replace("/[\/_|+ -]+/", $delimiter, $clean);
	return $clean;
}

Merci à vous !
 
WRInaute accro
Je ne suis pas sûr de comprendre pourquoi tu as besoin de décoder les url ? En théorie, la version nettoyée est enregistrée en BDD comme slug, de manière à retrouver les champs associés (titres, description, etc.). Tu n'as en théorie pas besoin de dés-encoder ton url...
 
WRInaute discret
UsagiYojimbo a dit:
Je ne suis pas sûr de comprendre pourquoi tu as besoin de décoder les url ? En théorie, la version nettoyée est enregistrée en BDD comme slug, de manière à retrouver les champs associés (titres, description, etc.). Tu n'as en théorie pas besoin de dés-encoder ton url...

Bonsoir et merci de ta réponse,

Apparemment non puisque dans ma base le champs s'appelle Aimée, avec l'encodage, ca rend http//site.fr/aimee et il ne trouve pas de aimee dans la bdd...
Au passage, j'utilise de cette manière :

<a href="/site/<?php echo toAscii($nom); ?> ">Lien</a>
Donc peut-être que j'utilise mal la fonction..

Merci.
 
WRInaute discret
Ah oui je viens de lire ça... Tu veux dire que je rajoute dans ma table idname et après je sors quelque chose comme ça :

dans ma boucle :

<a href="/site/<?php echo ($idname); ?> "><?php echo ($name); ?></a>

C'est conseillé de faire ça ? Enfin, je ne serais pas le seul non ?
 
Discussions similaires
Haut